シナリオ: ユーザーは、友人などの関係タイプを作成できます。その後、ユーザーは関係定義として他のユーザーをリンクできます。ユーザーが削除された場合は、関係の定義を削除する必要があり、ユーザー間の関係も削除する必要があります。
これは、SQL サーバーのデモ データベース設計です: http://i.stack.imgur.com/3pcOy.png 外部キーは次のとおりです。
- 表 2.UserId リファレンス 表 1.UserId;
- 表 3.RelationShipId リファレンス 表 2.RelationshipId;
- 表 3.UserId リファレンス 表 1.UserId;
- 表 3.OtherUserId 参照 表 1.UserId;
私の目標は、テーブル 1 からレコードを削除すると、テーブル 2 とテーブル 3 の関連レコードが削除されることです。テーブル 2 からレコードを削除すると、テーブル 3 の関連するレコードが削除されます。
「ON DELETE CASCADE」を使用しようとすると、「サイクルまたは複数のカスケードパスが発生する可能性があります」というエラーが発生し、トリガーを使用したくありません。
このシナリオに関する提案はありますか?ありがとう、