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 verwijderd1
-> Zacht verwijderd, verschijnt in lijsten met verwijderde items voor beheergebruikers2
-> Zacht verwijderd, verschijnt voor geen enkele gebruiker behalve beheerders3
-> 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...