テーブルの挿入を行う場合、外部キーはその親テーブルに対して自動的にチェックされ、値が存在することが確認されます。存在しない場合、挿入は失敗します。
私の質問は、挿入時のこのデータ チェックのためだけに値を外部キーとして設定するのは間違っているのでしょうか?
私がやろうとしていることのいくつかのオタクの文脈:
大学以来忘れていたものすべてをブラッシュアップするために、レスリングのデータベースを構築しています。レスリングのファンである私は、それをトピックとして使用することで私の興味を維持できると考えていました (そしてそれは続いています)。
Create Table Superstar
(
Superstar_ID Int Not Null Primary Key Identity (100,1),
Employee_ID Int Not Null Foreign Key References Employee(Employee_ID),
Alignment_ID Int Not Null Foreign Key References Alignment(Alignment_ID),
SuperStar_Name Varchar(50) Not Null,
SuperStar_Weight Varchar(50) Not Null,
SuperStar_Height Varchar(50) Not Null,
Billed_From Varchar(50) Not Null,
Active Bit Not Null
)
Create Table Title
(
Title_ID Int Not Null Primary Key Identity(1,1),
Title_Name Varchar(50) Not Null,
Title_Description Varchar(50) Not Null,
**Current_Holder Int Foreign Key References Superstar(Superstar_ID),
Former_Holder Int Foreign Key References Superstar(Superstar_ID),**
Active Bit Not Null
)
Create Table Superstar_Title
(
Superstar_Title_ID Int Not Null Primary Key Identity (1,1),
Title_ID Int Not Null Foreign Key References Title(Title_ID),
Superstar_ID Int Not Null Foreign Key References Superstar(Superstar_ID)
)
「Title」テーブルについては、Current_Holder フィールドと Former_Holder フィールドを外部キーとして設定し、Superstar_ID が挿入時に実際に存在することを Superstar テーブルに確認しました。
これはひどく間違っていますか?組み込みのチェック制約のためだけに外部キーを使用していますか?