我想在 mySQL 数据库上实现这种关系。
我正在使用这个架构:
CREATE TABLE Person
(
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(40),
PRIMARY KEY(id)
);
CREATE TABLE Student
(
id INTEGER NOT NULL,
FOREIGN KEY(id)
REFERENCES Person(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
CREATE TABLE Teacher
(
id INTEGER NOT NULL,
room INTEGER NOT NULL,
FOREIGN KEY(id)
REFERENCES Person(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
这样我可以保证不存在不是人的老师或学生,但是我不能保证“完全”专业化。可能存在一个不是学生或教师的人。此外,我不能保证排他性。可能存在一个学生和教师的人。
我如何在关系数据库中像 MySQL 一样解决这个问题?