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