一般来说,为所有列创建复合外键或为每列创建外键有区别吗?
第一种方法
FOREIGN KEY(OrderId, CompanyId) REFERENCES ParentTable(OrderId, CompanyId)
第二种方法
FOREIGN KEY(OrderId) REFERENCES ParentTable(OrderId)
FOREIGN KEY(CompanyId) REFERENCES ParentTable(CompanyId)
一般来说,为所有列创建复合外键或为每列创建外键有区别吗?
第一种方法
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 的单独行就足够了。