Bra*_*sen 13 database diagram entity-relationship isa

我只是想知道,ER图中的ISA关系如何转换为数据库中的表.
会有3张桌子吗?一个人,一个学生,一个老师?
或者会有2张桌子吗?一个用于学生,一个用于教师,每个实体具有人+属性的属性?
或者是否会有一个包含所有4个属性的表,并且表中的一些正方形为空,具体取决于它是否是该行中的学生或教师?
注意:我忘记添加此内容,但ISA关系已完全覆盖,因此一个人必须是学生或教师.
小智 12
假设关系是强制性的(如你所说,一个人已经是一个学生或教师)和不相交(一个人或者是一个学生或教师,但不能同时),最好的解决办法是用2个表,一个学生一个给老师.
如果参与是可选的(这不是你的情况,但让我们说它是完整的),那么3表选项是要走的路,有一个Person(PersonID,Name)表,然后是另外两个将引用的表Person表,例如Student(PersonID,GPA),PersonID为PK,FK引用Person(PersonID).
1表选项可能不是这里最好的方法,它会产生几个空值的记录(如果一个人是学生,只有教师的属性将为null,反之亦然).
如果不相交,那么这是一个不同的故事.
您可以使用 4 个选项将其映射到 ER,
选项1
选项 2由于这是一个覆盖关系,选项 2 不是一个很好的匹配。
选项 3
选项 4
由于子类没有太多属性,选项3和选项4最好将其映射到ER