좋습니다. 상황이 있습니다.복합 기본 키와 고유 키를 외래 키로 사용
- 대학에는 한 명 이상의 교수가 있습니다.
- 각 교수진에는 여러 부서가 있습니다.
저는 중복 된 교수 또는 부서를 원하지 않습니다. 그래서 아래 세 표를 정의했습니다.
CREATE TABLE university (
id INT PRIMARY KEY AUTO_INCREMENT,
long_name VARCHAR(255) UNIQUE NOT NULL,
name VARCHAR(255) NOT NULL,
country VARCHAR(45) NOT NULL,
) Engine=InnoDB;
CREATE TABLE school_faculty (
id INT UNIQUE NOT NULL AUTO_INCREMENT,
name VARCHAR(45),
universityID INT,
PRIMARY KEY (name, universityID),
FOREIGN KEY (universityID) REFERENCES university (id)
) Engine=InnoDB;
CREATE TABLE department (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(45) NOT NULL,
schoolfacultyID INT NOT NULL,
FOREIGN KEY (schoolfacultyID)
REFERENCES school_faculty (id)
) Engine=InnoDB;
더 좋은 방법이 있는지 말해주세요. 나는 그걸로 고군분투하고있다.
게시물의 시작 부분에있는 두 개의 글 머리 기호를 기반으로 지금까지 올바른 것으로 보입니다. – TetonSig
적절한 [샘플 코드] (http://sscce.org/) (여기서는 SQL 문)가 임의의 스키마 및 샘플 데이터 형식보다 유용합니다. 샘플에'CREATE TABLE'을 사용하십시오. – outis
updated : table structure attached – stanchen