目前我还没有构建任何数据库,我仍处于学习使用 ER 图和表列表规划数据库的阶段。
我明白什么是一对一关系,什么时候使用它们,什么时候避免它们等等。我不明白的是它们是如何实现的?他们都有相同的主键吗?还是像多对多关系一样简单地放入一个外键?
最佳答案
人们通常会将其实现为指向另一个表的主键的一个表上的非空外键,并在此外键上添加唯一约束。
您还可以添加检查约束以确保表中的所有外键都显示为另一个表中的主键,反之亦然,尽管这样做会使在两个表中添加和删除项目变得相当困难。
另外两个选项是:
- 制作一个合并两个实体的表格。但这违背了实体和数据分离的概念。
- 有一个正常的多对多实现,并通过上述约束实现一对一。
关于数据库一对一关系实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14285304/