在关系模式上映射1:1关系

时间:2013-06-26 03:17:48

标签: sql database relational-database erd

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

在称为 join depencency 的关系模型中,它可以简单地表示为两个关系之间的约束,使得P(A)= P(B),其中P(A)和P (B)是对关系A和B的预测。尽管在关系术语中很容易支持,但遗憾的是SQL很难或不可能在不同的表之间强制实现连接依赖关系,因为标准SQL不支持同时更新多个表的能力。要在SQL中实现,您必须将它们组合到一个表中,或者在更新表时暂时禁用约束。