簡體   English   中英

DBMS是否單獨存儲引用屬性?

[英]Do DBMSs store referencing attributes separately?

假設我有以下關系(表):
Student (id, name , family) Course (id, title, unit, ref) Std-Course (std-id, course-id) //標准ID和課程ID是分別引用學生和課程關系的外鍵。

是將std-id和course-id分開存儲還是將它們僅存儲為指針? (特別是在MySqlMS SQLSERVER

編輯 :讓我更多地解釋這種方式:

如果在Student表中有這樣的行(123456, JOHN, SMITH) ,而在Std-Course中的(123456,db1)123456存儲兩次或存儲在第二個表中(作為外鍵),那僅僅是鏈接嗎?

根據文檔:

MySQL支持外鍵和外鍵約束,這些外鍵使您可以跨表交叉引用相關數據,外鍵約束可以幫助保持擴展數據的一致性。

意思是,我們使用子級以及父級來存儲數據。 foreign key ... references ...的指令將存儲在系統表table_constraints以維護表之間已定義的關系

編輯

如果Student表中有這樣的行( 123456JOHNSMITH ),而Std-Course中有( 123456db1 )行,則123456是存儲兩次還是存儲在第二個表中(作為外鍵),它只是一個鏈接?

它被存儲兩次。 第一個在父表中,第二個在子表中。

引用不直接是表數據的一部分。 它們是對數據庫系統的指令,並以其自己的稱為information_schema的模式進行維護。

table_constraints是該模式的一部分,並包含有關在mysql當前實例下跨各種數據庫定義的所有這樣的約束的信息。

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM