2

如果我有两个实体并且它们之间的关系是 1:1。他们每个人的参与也是完全的......在这种情况下我应该做什么才能在关系模式中表示它们之间的关系?

4

2 回答 2

4

如果完全参与的 1:1 关系是两个实体之间的唯一关系,则只需将它们合并为一个关系。主键的选择将是任意的(选择原始实体的 PK 中的一个,而另一个 PK 将是备用键)。

相反,如果两个实体之间存在其他关系,从而阻止合并为单个关系,则可以将实体视为父子关系,并且选择放置外键的位置是任意的。

于 2013-06-26T11:25:34.017 回答
1

在称为连接依赖的关系模型中,它可以简单地表示为两个关系之间的约束,例如 P(A) = P(B),其中 P(A) 和 P(B) 是关系 A 和 B 的投影. 虽然在关系方面很容易支持,但不幸的是,SQL 使得在不同表之间强制连接依赖变得困难或不可能,因为标准 SQL 不支持同时更新多个表的能力。要在 SQL 中实现,您必须将它们组合到一个表中,或者在更新表时暂时禁用约束。

于 2013-06-26T11:50:34.910 回答