私は 'manager_id'を必要とする2つのテーブルを持つSQLデータベースを設計しています。 「従業員」テーブルと「施設」テーブル。マネージャーは従業員とみなされるので、私は別の「マネージャー」テーブルを用意するのか、単にそれを「従業員」テーブルに統合するべきかはわかりません。私はSQLに新しいので、このようなケースについてはわからない。これは、これまで私が持っているコードです:テーブルを別にしたり、データを統合したりする必要がありますか?
CREATE TABLE Employees (
emp_id NUMBER(5) NOT NULL,
emp_name VARCHAR2(20) NOT NULL,
emp_add1 VARCHAR2(30) NOT NULL,
emp_add2 VARCHAR2(30) NOT NULL,
emp_add3 VARCHAR2(30),
emp_town VARCHAR2(30),
emp_county NUMBER(2) NOT NULL,
emp_telno NUMBER(10),
emp_position NUMBER(3) NOT NULL,
emp_manager NUMBER(4),
CONSTRAINT pk_empid PRIMARY KEY (emp_id),
CONSTRAINT fk_empcounty FOREIGN KEY (emp_county) REFERENCES County(county_id),
CONSTRAINT fk_empposition FOREIGN KEY (emp_position) REFERENCES Positions(position_id),
CONSTRAINT fk_empmanager FOREIGN KEY (emp_manager) REFERENCES Manager(manager_id)
);
CREATE TABLE Facilities (
facility_id NUMBER(2) NOT NULL,
facility_name VARCHAR(15) NOT NULL,
facility_manager NUMBER(4) NOT NULL,
CONSTRAINT pk_facilityid PRIMARY KEY (facility_id);
CONSTRAINT fk_facilitymanager FOREIGN KEY (facility_manager) REFERENCES Manager(manager_id)
);
何が質問ですか>? –
別のマネージャのテーブルを持っているか、または従業員テーブル – adohertyd
にマネージャを含めるべきですか。私の好みは、 'employee'の' manager_id'の自己参照を 'emp_id'と' employee'に戻すことですが、気に入らなければ別のテーブルがあります。 – Ben