【发布时间】:2016-03-05 01:18:01
【问题描述】:
CREATE TABLE Employee
(
id INT,
boss INT REFERENCES Employee(id),
PRIMARY KEY (id)
);
一个员工可以有很多老板,一个老板可以有很多员工。
这张桌子的功能和这两张桌子的设计一样吗?
CREATE TABLE Employee
(
id INT,
PRIMARY KEY (id)
);
Create table ManagerRelation (
id_from int NOT NULL,
id_to int NOT NULL,
PRIMARY KEY (id_from, id_to),
FOREIGN KEY (id_from) REFERENCES Employee(id),
FOREIGN KEY (id_to) REFERENCES Employee(id)
);
第二个表 ManagerRelation 存储有老板-雇员关系的工人的 id。
我的问题是,这两个设计对吗?如果正确,它们在功能上是否完全相同?
【问题讨论】:
-
在第一种情况下,每个员工只能有一个老板。在第二个示例中,您可以为每个员工建立无限数量的关系(从和到)。每个员工可以有多个老板。
标签: mysql sql self-referencing-table