行われたすべてのサービス呼び出しを記録するServiceCallデータベーステーブルがあるとします。この各レコードには、顧客レコードとの多対1の関係が含まれています。このレコードには、どの顧客がサービスコールを行ったかが格納されます。
さて、顧客があなたとの取引を停止し、データベースに顧客の記録が必要ないとします。新しいServiceCallレコードを作成するときに、ドロップダウンリストに顧客の名前を表示する必要がなくなりました。
職業はなんですか?ユーザーがデータベースから顧客のレコードを削除することを許可しますか?
その顧客のレコードに対して特別な列IsDeletedをtrueに設定し、IsDeletedがtrueに設定されているすべてのレコードがすべてのドロップダウンリストに読み込まれないことを確認しますか?これにより、古いレコードが内部結合で破損するのを防ぎますが、ユーザーが古い顧客と同じ名前の新しいレコードを追加することもできなくなりますね。
削除を一切禁止しますか?それを「無効にする」ことを許可しますか?
他に使用した戦略はありますか?誰もが自分の道を進んでいると思います。あなたの意見を見るだけです。
もちろん、上記は非常に単純化されており、通常、ServiceCallレコードは他の多くのエンティティテーブルにリンクします。削除する必要がある場合、これらすべてが同じ問題に直面します。