假设我通过以下方式使用类表继承:
CREATE TABLE person
(
id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
forename VARCHAR(30) NOT NULL,
surname VARCHAR(30) NOT NULL
);
CREATE TABLE employee
(
id INT(10) NOT NULL,
salary INT(10),
FOREIGN KEY (id) REFERENCES person (id)
);
CREATE TABLE volunteer
(
id INT(10) NOT NULL,
FOREIGN KEY (id) REFERENCES person (id)
);
好的,现在说我想检查我网站上的权限,即我需要检查一个人是员工还是志愿者。我可以将“人”中的外键放入“类型”表,但这肯定会带来问题,因为员工的子类型可能会更改为志愿者,并且超类中的这种“类型”也需要更新。
如果没有这个,我将不得不在任一表中搜索 id 的存在以找到它的子类型,这将是非常低效的。我需要一种可以使用单个字段来确定子类型的方法。任何人都可以帮忙吗?