2
CREATE TABLE Employee 
(
     id        INT,
     boss      INT REFERENCES Employee(id),
     PRIMARY KEY (id)
);

1 人の従業員が複数の上司を持つことができ、1 人の上司が複数の従業員を持つことができます。

このテーブルは、この 2 テーブル設計と同じように機能しますか?

  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)
);

2 番目のテーブル ManagerRelation には、上司と従業員の関係にある従業員の ID が格納されます。

私の質問は、これら 2 つの設計は正しいですか? 正しい場合、それらは機能的にまったく同じですか?

4

1 に答える 1

0

2つのデザインはかなり異なります。1 つ目は、各従業員に (多くても) 1 人の上司が必要ですが、各上司には多くの従業員を含めることができます。

2 つ目は、従業員が複数の上司を持つことができるようにすることです。

問題の説明から、2 番目の形式がより適切なデータ モデルです。上司と従業員の関係についての私の理解からすると、最初の説明が正しいと思います。

于 2016-03-05T01:21:20.500 に答える