triggers를 사용하거나 삭제할 수 있습니다. 그런 다음 FOREIGN KEY
제약 조건은이 수퍼 테이블을 참조합니다.
수퍼 타입 :
CREATE TABLE Being
(BeingId INT AUTO_INCREMENT
, ... other stuff about beings
, PRIMARY KEY (BeingId)
) ENGINE = InnoDB ;
하위 유형 :
CREATE TABLE Human
(BeingId INT --- not AUTO_INCREMENT
, ... other stuff about humans
, PRIMARY KEY (BeingId)
, CONSTRAINT Being_Human_fk
FOREIGN KEY (BeingId)
REFERENCES Being(BeingId)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB ;
CREATE TABLE Alien
(BeingId INT --- not AUTO_INCREMENT
, ... other stuff about aliens
, PRIMARY KEY (BeingId)
, CONSTRAINT Being_Alien_fk
FOREIGN KEY (BeingId)
REFERENCES Being(BeingId)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB ;
과 Spaceship
테이블 :
CREATE TABLE Spaceship
(SpaceshipId
, SpaceshipName
, OwnerId
, ... other stuff about spaceships
, PRIMARY KEY (SpaceshipId)
, CONSTRAINT Being_Spaceship_fk
FOREIGN KEY (OwnerId)
REFERENCES Being(BeingId)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB ;
덕분에, 내가 전에이 같은 짓을했다; 현재 프로젝트에서이 전략을 사용할 수 있을지 모르겠다. (예를 들어 인간과 사람이 정확히 같지 않다. 실제로는 이미 그런 테이블에서 내려왔다.) 나는 이것을 다시 생각해 볼 것이다. – user1193694
실망. 나는 스타 트랙 게임을 만들고 있다고 생각했다. ( –