gpt4 book ai didi

mysql - 将 n 元关系转换为 SQL 表

转载 作者:行者123 更新时间:2023-11-29 02:44:47 25 4
gpt4 key购买 nike

atm 我正在努力将 n 元关系从我的 ERD 转换为 SQL 表。

在大学里我们了解到,对于每个 n 元关系,我们创建一个交集表,其中 PK 作为 PK 的集合作为 FK。但是在这种情况下该怎么办: example1 enter image description here

是否有理由在这里创建一个交集表,或者将“部门”和“期间”的PK作为FK放入“收购过程”表中以减少表数是否可以?

感谢您的帮助!

最佳答案

为什么,您的 table 用完了吗? :-)

在您的示例图中,给定的采购流程似乎可以指代多个时期和多个部门。

但是如果把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 列放在 AcquisitionProcess 表中,并且每个引用表都有一行。

enter image description here

关于mysql - 将 n 元关系转换为 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com