任何人都可以提供一些示例,说明在 SQL 数据库中什么时候在同一个表上保留一对一关系是更好的选择,而什么时候将它们放在单独的表上更有意义?
当您有多个实体,它们都必须能够充当另一个实体的外键,并且“几个实体”既有公共属性又有唯一属性,并且您希望对唯一属性有 NOT NULL 约束(或者不那么重要)不想要一堆不适用于其他实体的唯一属性的 NULL 值)。即使您没有唯一/通用属性并且不关心 NULL 值,如果您希望每个子类型表以及超类型表都有单独的外部约束,您可能仍然希望这样做。这种策略称为超类型/子类型建模。
让我举一个例子。
peoples
teachers
- id(PK 和 FK 到 people.id)
- 年数教学 NOT NULL
- 无论什么不为空
students
- id(PK 和 FK 到 people.id)
- 等级不为空
- 无论什么不为空
正如您所看到的,教师和学生可以拥有一个用于某些属性的通用表,并且每个人都可以拥有自己的 NOT NULL 唯一属性。此外,您可以将人员、教师和学生加入到其他表并保持引用完整性。
另一个应用程序“可能”是,如果您为每条记录拥有单独的数据库,其中一个记录有一些属性,另一个记录有一些属性,但是,我从未这样做过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)