1

SQL Serveris_deletedテーブルに列を作成することは良い方法ですか、それともこの質問に対処する別の方法がありますか?

私が考えることができる別の解決策は、その行を削除し、削除された行のために別のテーブルに挿入することです。

最善の解決策は何ですか?

前もって感謝します。

4

4 に答える 4

2

依存します。

私はIsDeletedフィールドを使用してから、これらの行をアーカイブされたテーブルに移動するアーカイブ プロセスを時々実行します。必要に応じて取得します。

于 2010-11-04T06:23:05.753 に答える
1

それは本当にあなたのシナリオに依存します。レコードを削除済みとしてマークすることは、実際の削除よりもI / Oの負荷がはるかに少なくなります(制約チェックやページの合体などはありません)が、アプリケーションがソフト削除に対処する必要があるため、コードがさらに複雑になります。どこでも記録します。削除されたレコードでさえ返したい場合もあれば、厳密に返さない場合もあるため、すべてのクエリでこれを考慮に入れる必要があります。

注意すべきもう1つの重要な点は、法律や顧客の要件により、アプリケーションで完全な削除が必要になる場合があることです。

于 2010-11-04T12:23:14.933 に答える
1

質問への回答が少し遅れているかもしれませんが、コラムのような「ソフト デリート」の使用に関するUdi Dahan の投稿を読む必要があります。IsDeleted

于 2010-11-04T08:59:29.240 に答える
1

行を削除するのではなく、IsDeletedフラグを使用することをお勧めします(または、ユーザーテーブルなどに使用するIsEnabled)。ストレージは安価であり、行が有効でなくなったからといって、データが無価値になるわけではありません。

私が通常持っているもう 1 つのことは、RowCreatedDateStamp 列です。これは何度も役に立ちました。

于 2010-11-04T08:47:56.520 に答える