我正在两个表之间创建关系:
我喜欢在 Inventory 和 InventoryExtended 表之间形成关系。
Inventory 表的主键是 InvID(库存 ID)。
我创建 InventoryExtended 的原因是因为 Inventory 表中只有 1% 的库存项目需要附加或扩展字段,其余的则不需要。 我没有在 Inventory 表中添加这些附加字段,因为我需要的 50 个附加字段的 99% 都是空白,我决定创建一个 InventoryExtended 表并在其中存储 50 个字段。
Inventory 和 InventoryExtended 表之间的关系为 1 对 1。
意思是,对于 Inventory 表中 1% 的记录,InvId 将与 InventoryExtended 表中的 InvId 相同。
我的问题是InventoryExtended表中的InvID应该是FK(外键)还是应该是PK和FK?
我认为它应该是 PK 和 FK,因为 InvID 在 InventoryExtended 表中是唯一的。
提前致谢。
最佳答案
你是对的。
InvID
应该是一个 PRIMARY KEY
和一个 FOREIGN KEY
,因为它在 InventoryExtended
中是唯一的表。
这种类型的关系确实是 1:1 或者(更准确地说)1::0..1
,因为只有 Inventory
表中的某些行会InventoryExtended
中有一个相关行。
另请注意,即使 Inventory (InvID)
有它。
关于sql-server - SQL Server 表 PK 和 FK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14505692/