我习惯在MongoDB中工作,如果我在那里创建0-n或1-n关系,我可以创建一个包含我正在引用的文档的所有ID的数组,如下所示: / p>
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)
)
这是对的吗?
答案 0 :(得分:0)
是的,这是关系数据库中的典型方法。
当然,员工只能在这个模型中为一家公司工作。在现实世界中,有可能有人为两家或更多公司工作。然后你需要参考表并创建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)
);