【问题标题】:Representing an Entity Type with two parent types in an Entity-Relationship Diagram?在实体关系图中表示具有两个父类型的实体类型?
【发布时间】:2013-07-07 00:18:52
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: database-design entity entity-relationship database-schema


    【解决方案1】:

    你可以换一种方式思考。与其让一个研究助理继承自student,你可以让它与那些人建立关系(在OOP中称为composition over inheritance

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

    【讨论】:

    • 好的。两个问题... 1. 我认为关系应该是严格的“动词”,例如“符合”或“提交文档”。我会给这种关系贴上什么标签?也许“是A”? 2.如果我从student中得出这个关系,那么图表是否仍然表明undergraduategraduate可以是research assistant的成员 也是?
    • 在这种情况下,该关系将是“进行研究”,并将包含特定研究活动所需的额外信息。我不会假设所有关系总是“动词”,但它们也可以链接到其他数据,例如“有一个....”。 Graduateundergraduate现在和research assistant有间接关系,直接暗示他们是student,student可以反过来是研究人员。它将以 3 表 JOIN 结束以建立该关联。
    • 完美,这真的让我明白了!谢谢,抱歉回复晚了!
    猜你喜欢
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多