最近、さまざまなプロジェクトでこのシナリオに何度も遭遇しました。以下は、文字でラベル付けされた 4 つのテーブルの図です。
A
1 / \ 1
/ \
* / \ *
B C
1 \ / 1
\ /
* \ / *
D
このシナリオでは、B
toA
とC
toのキーA
が特定の と一致しない場合、データの一貫性が失われる可能性がありますD
。
A
特定の (構成された) 例として、 is Company
、B
is Employee
、C
is Project
、およびD
isを想像してくださいWorkItem
。この場合、プロジェクトを所有する会社でさえ働いていない人に割り当てられると主張する作業項目が作成されるのを止めるものは何もありません。
私は主に興味がありますが、この問題に対する設計上の解決策はありますか? これが重要な実際のアプリケーションでは、トリガーまたはその他の保護手段を使用できることを私は知っています。このような不一致を不可能にするためにテーブルを変更する方法は見つかりませんでした。方法はありますか?
C
からへのように、接続の 1 つを切断するだけでA
はうまくいかないことに注意しD
てC
くださいA
。