現在プロジェクトに取り組んでおり、大多数のユーザー(ユーザーロール)に対してソフト削除を実装する必要があります。is_deleted='0'
データベース内の各テーブルにフィールドを追加し'1'
、特定のユーザーロールが特定のレコードの削除ボタンを押した場合にフィールドを設定することにしました。
今後のメンテナンスのために、各SELECT
クエリにはレコードが含まれていないことを確認する必要がありますwhere is_deleted='1'
。
ソフト削除を実装するためのより良い解決策はありますか?
更新:アプリケーションデータベース内のすべてのテーブル/フィールドへの変更(フィールド、古い値、新しい値、時間、ユーザー、IP)を追跡する監査データベースがあることにも注意する必要があります。