子と親のデータベースを作成しようとしています。テーブルは次のようになります。
ChildTable : 子 ID (pk) | 親 ID (fk) | 名前
ParentTable :親 ID (pk) | 名前
FOREIGN KEY ParentTable(parent-id) REFERENCES ChildTable(parent-id) ON DELETE CASCADE
問題: 親は複数の子を持つことができ、親テーブルは子テーブルに依存しています。親に 2 人の子がいて、ChildTableから 1 つの子レコードを削除すると、親も削除されますが、レコードがまだデータベースにある別の子には親レコードが存在する必要があります。
上記の要件を満たすことができる他の MySQL メソッド/制約はありますか。
前もって感謝します。
更新:私の問題を詳しく説明したいと思います。
次のルールをデータベースに適用したい:
- 親テーブルのレコードは、常に子テーブルの 1 つまたは 2 つのレコードに従属している必要があります。(同じために FK が追加されました。)
- 2 つの子が同じ親 ID を指す可能性があります
- 親 ID (「abc」など) を持つ 1 つの子を削除する場合、同じ親 ID を持つ別の子が存在する場合、親 ID を削除してはなりません。
- 同じparentID('abc')を持つ2番目の子を削除すると、parentID('abc')を持つ子がないため、削除する必要があります。