それが私のやり方です。 is_deleted
があります デフォルトが0のフィールド。次に、クエリはWHERE is_deleted = 0
をチェックするだけです。 。
私は可能な限りハード削除を避けようとします。それらは時々必要ですが、私はそれを管理者専用の機能にします。そうすれば、完全に削除することはできますが、ユーザーは削除できません...
編集: 実際、これを使用して、アプリに複数の「レイヤー」のソフト削除を含めることができます。したがって、それぞれがコードである可能性があります:
-
0
->削除されません -
1
-> Soft Deleted、管理ユーザーの削除済みアイテムのリストに表示されます -
2
->ソフト削除、管理者ユーザー以外のユーザーには表示されません -
3
->開発者にのみ表示されます。
他の2つのレベルがある場合でも、管理者と管理者は、削除されたリストが長くなりすぎた場合にそれらをクリーンアップできます。また、フロントエンドコードはis_deleted = 0
をチェックするだけなので 、フロントエンドに対して透過的です...