sql >> データベース >  >> RDS >> Mysql

ソフト削除のベストプラクティス(PHP / MySQL)

    それが私のやり方です。 is_deletedがあります デフォルトが0のフィールド。次に、クエリはWHERE is_deleted = 0をチェックするだけです。 。

    私は可能な限りハード削除を避けようとします。それらは時々必要ですが、私はそれを管理者専用の機能にします。そうすれば、完全に削除することはできますが、ユーザーは削除できません...

    編集: 実際、これを使用して、アプリに複数の「レイヤー」のソフト削除を含めることができます。したがって、それぞれがコードである可能性があります:

    • 0 ->削除されません
    • 1 -> Soft Deleted、管理ユーザーの削除済みアイテムのリストに表示されます
    • 2 ->ソフト削除、管理者ユーザー以外のユーザーには表示されません
    • 3 ->開発者にのみ表示されます。

    他の2つのレベルがある場合でも、管理者と管理者は、削除されたリストが長くなりすぎた場合にそれらをクリーンアップできます。また、フロントエンドコードはis_deleted = 0をチェックするだけなので 、フロントエンドに対して透過的です...



    1. WordPressとNginx、MariaDB 10、PHP7をDebian9にインストールします

    2. クラウドベンダーの詳細:DigitalOcean上のPostgreSQL

    3. SQLServerで小文字を含む行を返す5つの方法

    4. OracleでFROM句なしで選択