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。

我的问题是,这两个设计对吗?如果正确,它们在功能上是否完全相同?

最佳答案

两种设计有很大不同。第一个要求每个员工(最多)有一个老板,尽管每个老板可以有很多员工。

第二种允许员工拥有多个老板。

根据问题的描述,第二种形式是更合适的数据模型。根据我对老板与员工关系的理解,我希望第一个是正确的。

10-07 19:38
查看更多