Jas*_*Dor 4 erd database-design
我有一个我很难理解的 ER 模型,因为有一个与其自身有关系的实体集。我试图理解两个问题:
1)孩子可以先于父母出生吗?
2)一个人可以成为自己的孩子吗?
对于1)我认为这是不可能的,因为parentID字段将为空
对于2)由于这是多对一的关系,我不明白为什么这不可能是真的,只要这个人不是别人的孩子。
小智 5
无论哪种方式,ERD 中都没有任何内容可以约束模型。如果没有适当的限制,一个孩子可能会被记录为在他/她的父母之前出生,一个人可能是他们自己的孩子或父母,并且可能存在任意代数的循环。
例如,假设 ERD 实现为:
Person (personId PK, dateOfBirth, name, gender)
ChildOf (personId PK/FK, parentId FK)
Run Code Online (Sandbox Code Playgroud)
我们可以记录以下行集:
Person (1, 2000-11-01, John, Male) ChildOf (1, 2)
Person (2, 1970-05-23, Jane, Female) ChildOf (2, 4)
Person (3, 1985-01-11, Jack, Male) ChildOf (3, 3)
Person (4, 1950-11-01, Joan, Female) ChildOf (4, 1)
Run Code Online (Sandbox Code Playgroud)
ERD 中也没有任何内容可以阻止任何限制。就目前情况而言,我必须对这两个问题回答“是”或“这取决于您假设或实施的未声明的约束”。如果需要这样的限制,我建议明确说明。