【问题标题】:How to model properly N:N:1 ternary relationship?如何正确建模 N:N:1 三元关系?
【发布时间】:2017-08-05 00:30:41
【问题描述】:

我正在研究包含这种三元关系的 ER 模型。我知道对这种类型的关系进行建模的一种选择是将这种关系转换为弱实体,然后使用二元关系将该实体与其他三个实体连接起来。我不知道该怎么做是如何将它们连接起来,用什么类型的二元关系。至少有人可以向我解释一下我该怎么做。

N:N:1 ternary model

【问题讨论】:

    标签: database database-design entity-relationship


    【解决方案1】:

    这样的……

    CREATE TABLE STUDY (
    
        STUDENT_ID int REFERENCES STUDENT,
        SUBJECT_ID int REFERENCES SUBJECT,
        DEPARTMENT_ID int NOT NULL REFERENCES DEPARTMENT,
    
        PRIMARY KEY (STUDENT_ID, SUBJECT_ID)
    
    );
    

    看看我们如何有一个主键跨越所有列。主键中省略了 DEPARTMENT_ID,这意味着我们可以:

    • 有各种 STUDENT_ID/SUBJECT_ID 组合(在多行中),
    • 但是对于给定的 STUDENT_ID/SUBJECT_ID 组合,我们只能有一个 DEPARTMENT_ID(因为一行只能包含一个 DEPARTMENT_ID)。

    换一种说法:给定的学生只能学习给定的科目一次,这发生在特定的部门下。

    【讨论】:

    • Hvala Branko puno :-)
    猜你喜欢
    • 2019-12-25
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多