システムのすべてのユーザーは、メインの「ユーザー」クラスから派生しています。同様に、追加のユーザー情報を提供するために、特定のユーザータイプに必要なテーブルと結合された1つのメインの「ユーザー」テーブルを持つ同じ方法でデータベースを構成したいと考えています。両方のテーブルの主キーを使用する外部キーの関係
参照例として、これらの3つの基本的なテーブル:
表 "ユーザー"
のuser_id | user_email | user_firstname | user_lastname | ...
テーブル "従業員"
user_id | employee_staff_number | ...
"admin"
user_id | admin_permissions | ...
すべての3つのテーブルには、プライマリキーとして「user_id」列があります。これは明らかに、常に同じユーザーに同じ値を持ちます。
しかし、私は外来キーを実装しようとしました。そのため、主なユーザーテーブルに対応するエントリがない派生テーブルにはユーザー行が存在できません。
#1215 - Cannot add foreign key constraint
も「USER_ID」は可能にするために、派生テーブルの主キーを新規に導入することなく、これを実装する方法がありますエラーで
ALTER TABLE `employee` ADD CONSTRAINT `fk_employee` FOREIGN KEY (`user_id`) REFERENCES `database_name`.`user`(`user_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
結果、以下のSQLを実行しようとすると、それらの定期的なインデックス?チェックする