Mysql 将n元关系转换为SQL表
atm我正在努力将n元关系从ERD表转换为SQL表 在大学里,我们了解到,对于每个n元关系,我们创建一个交集表,其中PK作为PK的集合,作为FKs。但在这种情况下该怎么办: 是否有理由在此处创建一个交集表,或者将“部门”和“期间”的PKs作为FKs放入“采集过程”表中,以减少表的数量Mysql 将n元关系转换为SQL表,mysql,sql,mariadb,erd,Mysql,Sql,Mariadb,Erd,atm我正在努力将n元关系从ERD表转换为SQL表 在大学里,我们了解到,对于每个n元关系,我们创建一个交集表,其中PK作为PK的集合,作为FKs。但在这种情况下该怎么办: 是否有理由在此处创建一个交集表,或者将“部门”和“期间”的PKs作为FKs放入“采集过程”表中,以减少表的数量 谢谢你的帮助 为什么,你的桌子快用完了吗?:-) 在您的示例图中,一个给定的采集过程可能涉及多个时期和多个部门 但如果将FK放入采集流程表中,则每个FK列只能输入一个值,因此每个流程只能引用一个期间和一个部门,如
谢谢你的帮助 为什么,你的桌子快用完了吗?:-) 在您的示例图中,一个给定的采集过程可能涉及多个时期和多个部门 但如果将FK放入采集流程表中,则每个FK列只能输入一个值,因此每个流程只能引用一个期间和一个部门,如下所示:
CREATE TABLE AcquisitionProcess (
process_id INT PRIMARY KEY,
period_id INT, -- one id value
department_id INT, -- one id value
FOREIGN KEY (period_id) REFERENCES Period(period_id),
FOREIGN KEY (department_id) REFERENCES Department(department_id)
);
当收购流程适用于两个部门和三个时期时,您将如何处理
当您有多个n元关系(有时也称为多对多关系)时,每个关系确实需要一个交集表
请回复您的评论: 如果希望采集流程引用一个期间和一个部门,则将FK列放在采集流程表中,每个引用的表都有一行
感谢您的快速响应<代码>但如果将FK放入采集流程表中,则每个FK列中只能输入一个值,因此每个流程只能引用一个期间和一个部门,如下所示:…这是预期结果。那么我假设我的ERD是错误的,但是我如何在ERD中显示这种情况呢?我必须把它分成两段感情吗?太好了,非常感谢!但现在我还有一个问题。让我们回到我第一篇文章中的ERD。如果(1,1)也是(1,n),我应该如何解释ERD?我认为(1,1)意味着一个流程只能涉及一个时期和一个部门,但您纠正了我的错误,并编写了
,似乎给定的采集流程可以涉及多个时期和多个部门。
。现在,如果我用(1,n)替换示例中的(1,1)ERD,其含义有什么区别?我从未见过一个ERD有这样多个链接的菱形。使用菱形时,请在左侧放置“1..*”或“N”,在右侧放置“1”或“0..1”。为每个关系使用单独的菱形关联实体。