1

多くのエンティティと関係を含む複雑なスキーマがあります。元に戻すことができる論理的な削除操作を定義したいと考えています。すべてのテーブルに「isDeleted」フラグを追加することを検討しましたが、バグが発生しやすいようです。また、元のスキーマに似たアーカイブ スキーマを追加し、すべての削除操作でそこにデータを移動することも検討しました。「削除」操作と「削除取り消し」操作 (特に論理デルタの削除カスケードをエミュレートしたいので)。

最後に、EF を使用している論理削除のイベントを処理する場所がわからないので、コードで実行するか、DB で削除トリガーを使用することができます。

論理的な削除をエレガントな方法で実装する方法についての推奨事項に感謝します。ありがとう。

4

2 に答える 2

4

私が働いていたすべての会社は、常に論理的な削除フラグを使用し、コードでそれを管理してきました。アーカイブ スキーマを追加することは大きなオーバーヘッドであり、IMO によって追加されたエレガンス (コーディングとパフォーマンスの両方) は、余分な労力に値しません。

于 2013-03-02T06:25:45.247 に答える
0

これは OLTP データベースであるため、IsDeleted フラグを使用しても問題はありません。パフォーマンスが心配な場合は、引き続き IsDeleted フラグを使用し、オンラインではなくバッチ プロセスでアーカイブに移動します。

何かを過度に設計しないようにするために私が常に心に留めていることの 1 つは、問題がなければ問題ではないということです。

于 2013-03-02T17:15:15.023 に答える