0

我有一个名为STUDENT的实体类型,它有两个子类型:GRADUATEUNDERGRADUATE。很容易。

现在,我(大概基于规范)还有另一种实体类型,称为RESEARCH ASSISTANT,它被定义为学生(因此继承了 STUDENT 的属性)......但是规范对于 RESEARCH ASSISTANT 是研究生还是大学本科。

假设研究助理可以是任何一种情况,我如何在实体关系图中表示?在示例中,符号通过在父级中绘制来表示子类型……但是如果子级有两个不同的父级怎么办?

如果我只是对 STUDENT 进行子类型化,那么研究助理是否毕业就变得模棱两可了……那么我是否为 RESEARCH ASSISTANT 画了两个不同的实体(一个在研究生中,另一个在本科生中)?:S

4

1 回答 1

1

你可以换一种方式思考。您可以将其与那些研究助理建立关系,而不是让研究助理学生那里继承(在 OOP 中称为组合而不是继承

在图表中,保持学生研究生本科生和现在一样,并添加从学生研究助理的“一对零或一”关系。当这种关系存在时,学生(研究生、本科生或其他)也将成为助理,但当这种关系缺失时,他将只是学生。

于 2013-07-07T01:03:08.180 回答