实体关系图.IS A关系如何转化为表格?

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

我绘制了一个简单的ER图

我只是想知道,ER图中的ISA关系如何转换为数据库中的表.

会有3张桌子吗?一个人,一个学生,一个老师?

或者会有2张桌子吗?一个用于学生,一个用于教师,每个实体具有人+属性的属性?

或者是否会有一个包含所有4个属性的表,并且表中的一些正方形为空,具体取决于它是否是该行中的学生或教师?

注意:我忘记添加此内容,但ISA关系已完全覆盖,因此一个人必须是学生或教师.

小智 12

假设关系是强制性的(如你所说,一个人已经是一个学生或教师)和不相交(一个人或者是一个学生或教师,但不能同时),最好的解决办法是用2个表,一个学生一个给老师.

如果参与是可选的(这不是你的情况,但让我们说它是完整的),那么3表选项是要走的路,有一个Person(PersonID,Name)表,然后是另外两个将引用的表Person表,例如Student(PersonID,GPA),PersonID为PK,FK引用Person(PersonID).

1表选项可能不是这里最好的方法,它会产生几个空值的记录(如果一个人是学生,只有教师的属性将为null,反之亦然).

如果不相交,那么这是一个不同的故事.


ish*_*nga 5

您可以使用 4 个选项将其映射到 ER,

选项1

  • 人(,姓名)
  • 学生(SIN,GPA)
  • 老师(SIN,薪水)

选项 2由于这是一个覆盖关系,选项 2 不是一个很好的匹配。

  • 学生(SIN,姓名,GPA)
  • 老师(SIN,姓名,薪水)

选项 3

  • Person( SIN ,Name,GPA,Salary,Person_Type) 人员类型可以是学生/教师

选项 4

  • Person( SIN ,Name,GPA,Salary,Student,Teacher) Student 和 Teacher 是 bool 类型字段,可以是 yes 或 no,重叠的好选择

由于子类没有太多属性,选项3和选项4最好将其映射到ER