Sql server SQL Server表PK和FK
我正在两个表之间创建关系: 我想建立的关系是库存和库存扩展表之间的关系 库存表的主键是InvID(库存ID) 我之所以创建InventoryExtended,是因为inventory表中只有1%的库存项目需要额外或扩展字段,其余的不需要。 我决定创建一个InventoryExtended表,并将这50个字段存储在Inventory表中,而不是在Inventory表中添加这些字段,其中我需要的50个字段的99%将为空 库存与库存扩展表之间的关系为1:1 也就是说,对于Inventory表中1%的记录,InvId将与InventoryExtended表中的InvId相同 我的问题是InventoryExtended表中的InvID应该是FK(外键)还是PK和FK 我认为应该是PK和FK,因为InvID在InventoryExtended表中是唯一的 提前谢谢。你说得对Sql server SQL Server表PK和FK,sql-server,Sql Server,我正在两个表之间创建关系: 我想建立的关系是库存和库存扩展表之间的关系 库存表的主键是InvID(库存ID) 我之所以创建InventoryExtended,是因为inventory表中只有1%的库存项目需要额外或扩展字段,其余的不需要。 我决定创建一个InventoryExtended表,并将这50个字段存储在Inventory表中,而不是在Inventory表中添加这些字段,其中我需要的50个字段的99%将为空 库存与库存扩展表之间的关系为1:1 也就是说,对于Inventory表中1%的记
InvID
应该是一个主键
和一个外键
,因为它在库存扩展
表中是唯一的
这种类型的关系实际上是1:1或(更准确地说)1::0..1
,因为Inventory
表中只有一些行在InventoryExtended
中具有相关行
还要注意的是,
InventoryExtended(InvID)
不应具有IDENTITY
属性,即使Inventory(InvID)
具有该属性。InvID将同时是扩展表的PK和FK
如果您事先知道(即当您尝试获取数据时)特定的库存类型是否具有扩展数据,对于此类记录,您甚至可以完全跳过原始表,只需使用两个不相交的表smallInventory和bigInventory,以便在另一个表中不存在其中一个的记录