gpt4 book ai didi

mysql - 一对多 MongoDB 与 SQL

转载 作者:行者123 更新时间:2023-11-29 21:23:17 26 4
gpt4 key购买 nike

我习惯在 MongoDB 中工作,如果我在那里创建 0-n 或 1-n 关系,我可以创建一个包含我引用的文档的所有 ID 的数组,如下所示:

var Company = new Schema({
name: String,
Employee_IDs: [String]
});

现在我正在尝试弄清楚如何在 SQL 中执行此操作,我声称 SQL 中的 MongoDB 关系的等效项如下所示,对吗?

CREATE TABLE Company(
Company_ID INT NOT NULL,
name VARCHAR(20) NOT NULL,
PRIMARY KEY (Company_ID)
)

CREATE TABLE Employee(
Employee_ID INT NOT NULL,
Company_ID INT NOT NULL,
PRIMARY KEY (Employee_ID),
FOREIGN KEY (Company_ID) REFERENCES Company(Company_ID)
)

这是正确的吗?

最佳答案

是的,这是关系数据库中的典型方法。

当然,在此模型中,员工只能为一家公司工作。在现实世界中,可能存在某人为两家或两家以上公司工作的情况。然后您需要引用表并创建 m:n 关系,如下所示:

CREATE TABLE CompanyEmployee
(
Company_ID INT NOT NULL,
Employee_ID INT NOT NULL,
PRIMARY KEY (Company_ID, Employee_ID),
FOREIGN KEY (Company_ID) REFERENCES Company(Company_ID),
FOREIGN KEY (Employee_ID) REFERENCES Employee(Employee_ID)
);

CREATE TABLE Employee
(
Employee_ID INT NOT NULL,
PRIMARY KEY (Employee_ID)
);

关于mysql - 一对多 MongoDB 与 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624469/

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