2

我正在创建 2 个表之间的关系:

我喜欢形成的关系是 Inventory 和 InventoryExtended 表之间的关系。

Inventory 表的主键是 InvID(Inventory ID)。

我创建 InventoryExtended 的原因是因为 Inventory 表中只有 1% 的库存项目需要附加或扩展字段,其余的不需要。我决定创建一个 InventoryExtended 表并将 50 个字段存储在那里,而不是在 Inventory 表中添加这些额外的字段,其中 99% 将为我需要的 50 个额外字段为空白。

Inventory 和 InventoryExtended 表之间的关系将是 1 对 1。

这意味着,对于 Inventory 表中 1% 的记录,InvId 将与 InventoryExtended 表中的 InvId 相同。

我的问题是 InventoryExtended 表中的 InvID 应该是 FK(外键)还是应该是 PK 和 FK?

我认为它应该是 PK 和 FK,因为 InvID 在 InventoryExtended 表中将是唯一的。

提前致谢。

4

2 回答 2

2

你是对的。

InvID 应该是 aPRIMARY KEY和 aFOREIGN KEY因为它将在InventoryExtended表中是唯一的。

这种类型的关系确实是 1:1 或(更准确地说)1::0..1,因为只有Inventory表中的某些行会在InventoryExtended.

另请注意,即使拥有它,也不InventoryExtended (InvID)应该拥有该属性。IDENTITYInventory (InvID)

于 2013-01-24T16:09:44.793 回答
0

InvID 将是扩展表的 PK 和 FK。

如果您事先知道(意味着当您尝试获取数据时)特定库存类型是否将具有扩展数据,那么对于此类记录,您甚至可以完全跳过原始表并简单地使用两个不相交的表 smallInventory 和 bigInventory 这样没有一个的记录存在于另一个中。

于 2013-01-24T16:55:06.743 回答