
create table PROJECT(
-> id INT PRIMARY KEY,
-> name VARCHAR(20) NOT NULL UNIQUE,
-> leader_id INT,
-> start_date DATE,
-> end_date DATE,
-> FOREIGN KEY (leader_id) references EMPLOYEE(id)
-> on delete SET NULL on update CASCADE,
-> CHECK (start_date < end_date)
-> );
create table WORKS_ON(
empl_id INT,
proj_id INT,
PRIMARY KEY (empl_id, proj_id),
FOREIGN KEY (empl_id) references EMPLOYEE(id)
on delete CASCADE on update CASCADE
FOREIGN KEY (proj_id) references PROJECT(id)
on delete CASCADE on update CASCADE
);
ALTER TABLE department ADD FOREIGN KEY (leader_id)// leader_id에 대한 FOREIGN KEY 추가
-> REFERENCES employee(id)
-> on update CASCADE
-> on delete SET NULL;

만들려는 서비스의 스펙과 데이터 일관성, 편의성, 확장성 등을 종합적으로 고려하여 DB 스키마를 적절하게 정의하는 것이 중요하다.