Foreign-Key

為所有列創建複合外鍵或為每列創建外鍵之間有區別嗎?

  • February 4, 2020

一般來說,為所有列創建複合外鍵或為每列創建外鍵有區別嗎?

第一種方法

FOREIGN KEY(OrderId, CompanyId) REFERENCES ParentTable(OrderId, CompanyId)

第二種方法

FOREIGN KEY(OrderId) REFERENCES ParentTable(OrderId)
FOREIGN KEY(CompanyId) REFERENCES ParentTable(CompanyId)

當然,有很大的不同。在第一種情況下,您通過列組合進行引用。這意味著 ParentTable 應該為您要添加到 ChildTable 的 OrderId 和 CompanyId 的每個組合包含一行。在第二種情況下,具有相應的 OrderId 和相應的 CompanyId 的單獨行就足夠了。

引用自:https://dba.stackexchange.com/questions/258883