sql >> Database >  >> RDS >> Mysql

Best practices voor zacht verwijderen (PHP/MySQL)

Zo doe ik het. Ik heb een is_deleted veld dat standaard op 0 staat. Controleer dan gewoon WHERE is_deleted = 0 .

Ik probeer zoveel mogelijk weg te blijven van hard-deletes. Ze zijn soms nodig, maar ik maak dat alleen voor beheerders. Op die manier kunnen we hard-verwijderen, maar gebruikers kunnen niet...

Bewerken: In feite zou je dit kunnen gebruiken om meerdere "lagen" van zachte verwijdering in je app te hebben. Dus elk kan een code zijn:

  • 0 -> Niet verwijderd
  • 1 -> Zacht verwijderd, verschijnt in lijsten met verwijderde items voor beheergebruikers
  • 2 -> Zacht verwijderd, verschijnt voor geen enkele gebruiker behalve beheerders
  • 3 -> Verschijnt alleen voor ontwikkelaars.

Met de andere 2 niveaus kunnen managers en beheerders de verwijderde lijsten nog steeds opschonen als ze te lang worden. En aangezien de front-endcode gewoon controleert op is_deleted = 0 , het is transparant voor de frontend...



  1. Duplicatie van Where-uitdrukkingen in toepassing elimineren

  2. Hoe voorwaarde-statements door te geven aan een mySql-query

  3. Gerangschikte invoerwaarde voegt lege record in mysql in

  4. Hoe DevOps DBaaS (Database-as-a-Service) zou moeten gebruiken om hun applicatie-ontwikkeling te optimaliseren