我正在创建两个表之间的关系:
我想形成的关系是在Inventory和InventoryExtended表之间。
Inventory表的主键是InvID(库存ID)。
我创建InventoryExtended的原因是,Inventory表中只有1%的库存项需要额外的或扩展的字段,其余的则不需要。 而不是在库存表中添加这些额外的字段,其中99%将为我需要的50个额外字段为空白我决定创建一个InventoryExtended表并在那里存储50个字段。
Inventory和InventoryExtended表之间的关系将是1比1.
意思是,对于Inventory表中1%的记录,InvId将与InventoryExtended表中的InvId相同。
我的问题是,如果InventoryExtended表中的InvID是FK(外键)还是PK和FK?
我认为它应该是PK和FK,因为InvID在InventoryExtended表中是唯一的。
提前致谢。
答案 0 :(得分:2)
你是对的。
InvID
应该是PRIMARY KEY
和FOREIGN KEY
,因为它在InventoryExtended
表中是唯一的。
这种类型的关系确实是1:1或(更准确地说)1::0..1
,因为只有Inventory
表中的某些行在InventoryExtended
中有相关的行。< / p>
另请注意,InventoryExtended (InvID)
不应具有IDENTITY
属性,即使Inventory (InvID)
拥有该属性。
答案 1 :(得分:0)
InvID将是扩展表的PK和FK。
如果您提前知道(意味着当您尝试获取数据时)某个特定库存类型是否具有扩展数据,对于此类记录,您甚至可以完全跳过原始表并简单地使用两个不相交的表smallInventory和bigInventory这样,另一个的记录就不存在了。