SQL Serveris_deleted
テーブルに列を作成することは良い方法ですか、それともこの質問に対処する別の方法がありますか?
私が考えることができる別の解決策は、その行を削除し、削除された行のために別のテーブルに挿入することです。
最善の解決策は何ですか?
前もって感謝します。
SQL Serveris_deleted
テーブルに列を作成することは良い方法ですか、それともこの質問に対処する別の方法がありますか?
私が考えることができる別の解決策は、その行を削除し、削除された行のために別のテーブルに挿入することです。
最善の解決策は何ですか?
前もって感謝します。
依存します。
私はIsDeleted
フィールドを使用してから、これらの行をアーカイブされたテーブルに移動するアーカイブ プロセスを時々実行します。必要に応じて取得します。
それは本当にあなたのシナリオに依存します。レコードを削除済みとしてマークすることは、実際の削除よりもI / Oの負荷がはるかに少なくなります(制約チェックやページの合体などはありません)が、アプリケーションがソフト削除に対処する必要があるため、コードがさらに複雑になります。どこでも記録します。削除されたレコードでさえ返したい場合もあれば、厳密に返さない場合もあるため、すべてのクエリでこれを考慮に入れる必要があります。
注意すべきもう1つの重要な点は、法律や顧客の要件により、アプリケーションで完全な削除が必要になる場合があることです。
質問への回答が少し遅れているかもしれませんが、コラムのような「ソフト デリート」の使用に関するUdi Dahan の投稿を読む必要があります。IsDeleted
行を削除するのではなく、IsDeletedフラグを使用することをお勧めします(または、ユーザーテーブルなどに使用するIsEnabled)。ストレージは安価であり、行が有効でなくなったからといって、データが無価値になるわけではありません。
私が通常持っているもう 1 つのことは、RowCreatedDateStamp 列です。これは何度も役に立ちました。