クラステーブルの継承を次のように使用するとします。
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 の存在を検索して、そのサブタイプを見つける必要があり、非常に非効率的です。単一のフィールドを使用してサブタイプを把握できる方法が必要です。誰でも助けることができますか?