2

将来必要になるため、テーブルからレコードを削除することは決してないと言われました。テーブルから行を完全に削除するよりも、行を DEACTIVATE できる DELETE 以外の選択肢があることを知ることができますか?

4

2 に答える 2

10

テーブルに列を追加できます-またはbitのように呼び出しますIsActiveIsDeleted

データを作成するときINSERTは、データが正しい値でマークされていることを確認してください。

New record - IsActive = true
           - IsDeleted = false

次に、レコードを使用不可にするにはUPDATE、逆の方法でレコードにフラグを立てる必要があります。

Update - IsActive = false
       - IsDeleted = true

クエリを実行すると、このフラグに従ってデータが除外されます。このタイプの論理的な削除をシステム全体に実装し、レコードを非表示にします。

于 2012-09-14T01:53:20.010 に答える
1

bluefeetと同じパターンを使用しており、非常にうまく機能します。

これを実装するのに役立つかもしれないいくつかのポインタ。

bit列が null 非許容であることを確認してください。論理的には、レコードが削除されているかどうかがわからない理由はありませんnull

また、bit列のデフォルトを に設定する0と、insert ステートメントでの参照について心配する必要がなくなります。0繰り返しますが、論理的には、削除されたレコードを挿入することはないため、レコードを追加するときに値を設定することを覚えておく必要はありません。

于 2012-09-14T03:55:43.310 に答える