0

我有一个包含 3 个表的数据库设计,分别称为 A、B 和 C,具有以下一对多关系:

A-<B>-C

A 和 B 都有一个自动递增的 ID 作为主键。

我的问题是,如果我在表 B 中有一条记录,它有一个包含 ID=12 的字段,例如,没有办法知道这对应于表 A 或 C 的主键中的哪一个。两个表的主键 ID=12。我认为这是一个粉丝陷阱的例子,但我所做的任何研究都与关系有关,例如:

A-<B-<C

解决方案是重组表格。我不确定这会在这里工作。我需要一张位于 B 桌与 A 桌和 C 桌之间的桌子吗?

4

2 回答 2

1

您必须向其中一个表添加外键才能建立这种关系。在您的示例中,您会将表 B 的 PK 添加为表 A、C 中的 FK

于 2013-06-06T19:25:03.750 回答
0

我的问题是,如果我在表 B 中有一条记录,它有一个包含 ID=12 的字段,例如,没有办法知道这对应于表 A 或 C 的主键中的哪一个。

您必须在 B 中添加一列,让您知道外键是指向 A 还是指向 C。

您的另一种选择是在 B 中有两个可为空的外键,一个指向 A,另一个指向 C。

我怀疑你的表可以规范化一点,所以你有一个这样的结构:

                D
   --------------------------
   |            |           |
   A            B           C
  ---          ---         ---
于 2013-06-06T19:21:03.717 回答