0
従業員と仕事の2つの関係があります。従業員関係では、主キーemployee_idを含む従業員に関する関連情報を保存します。タスクの関係では、主キーtask_idを含むタスクに関するすべての関連情報を保存します。SQLで2つの関係を結合する最も良い方法は?
どの従業員がどのタスクを持っているかを知るために、これらの2つの関係に参加する最良の方法は何でしょうか?従業員は複数のタスクを持つことができ、タスクは複数の従業員を持つことができます。このようなタスクに外部キーとしてemployee_idを追加するのが最善でしょうか。
CREATE TABLE Employee(
Name TEXT,
Employee_id INT PRIMARY KEY
);
CREATE TABLE Tasks(
task_description TEXT,
Employee_id INT,
FOREIGN KEY (Employee_id) REFERENCES Employee(Employee_id),
task_id INT PRIMARY KEY
);
私の問題は、複数の従業員が同じタスクを持つことができるため、タスクの関係のキーではないことです。
これは私が考えた別のオプションです。これに希望の効果があるかどうかはわかりません。
CREATE TABLE Employee(
Name TEXT,
Employee_id INT PRIMARY KEY
);
CREATE TABLE Tasks(
task_description TEXT,
Employee_id INT,
task_id INT,
PRIMARY KEY(Employee_id, task_id)
);
その他の(より良い)オプションはありますか?
これは非常に助けてくれました、ありがとうございます。私は多対多の関係をすべて変更しました:) – Robbebeest