绑定到复合 FK



是否有可能/或有一个表格,如与不同实体相关的地址簿,例如:人员、公司等我正在考虑使用复合 FK(typeid = 实体类型 id,例如:1 代表人,2 代表公司等,而另一列是指实体表的 pk)。

我的另一个替代方法是在实体和地址簿表之间使用连接表。

我正在使用VS 2005 C#和sql server 2008

假设:您的实体都存储在一个带有类型鉴别器的表中

是的,一个外键可以有多个列。

address条目只需要知道父entity
的PK它不需要知道entity的类型:entityTypeentity的属性,而不是address

接线台还是直FK?这取决于您的关系:

  1. 一个地址可以由多个实体共享吗?
  2. 一个实体可以有多个地址吗?

    • 两者都是:接线表
    • 对 Q1 是:address PK 是 entity 的属性。实体是 FK 中的子表
    • 对 Q2 是:entity PK 是 address 的属性。地址是 FK 中的子表

而我没想到的情况:

  • 两者都不:1:1 关系或您只需要一个表,addressentity的属性

我认为不需要引用一个表或另一个表的类型和entity_id。这是一种复杂的方法(两个表使用相同的 ID 池,并且可能没有表的外键),以后可能会导致问题。

你的问题似乎很简单,这里不需要任何技巧。

你有公司、人员和地址。如果每个人和每个公司都有一个地址,则在"公司"和"人员"表中具有地址 ID。如果一个人可以有多个地址,则需要一个桥接表。每个公司有多个地址相同。就这样。

最新更新