'manager_id'가 필요한 2 개의 테이블이있는 SQL 데이터베이스를 설계하고 있습니다. '종업원'테이블과 '시설'테이블. 관리자는 직원으로 간주되므로 별도의 '관리자'테이블을 보유해야하는지 아니면 직원 테이블에 통합해야하는지 확실하지 않습니다. 나는 SQL에 익숙하지 않고 이런 경우에 대해 확신하지 못한다. 이 질문에 대한 relational normalisation (관계형 데이터베이스에서 데이터의 조직)이다테이블을 별도로 만들거나 데이터를 통합해야합니까?
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