我曾经在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)
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句