Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Best Practices für vorläufiges Löschen (PHP/MySQL)

So mach ich es. Ich habe einen is_deleted Feld, das standardmäßig 0 ist. Dann prüfen Abfragen einfach WHERE is_deleted = 0 .

Ich versuche mich so weit wie möglich von Hard-Deletes fernzuhalten. Sie sind manchmal notwendig, aber ich mache das zu einer Funktion nur für Administratoren. Auf diese Weise können wir Hard-Deleting durchführen, aber Benutzer können nicht...

Bearbeiten: Tatsächlich könnten Sie dies verwenden, um mehrere "Ebenen" für vorläufiges Löschen in Ihrer App zu haben. Jeder könnte also ein Code sein:

  • 0 -> Nicht gelöscht
  • 1 -> Vorläufig gelöscht, erscheint in Listen gelöschter Elemente für Verwaltungsbenutzer
  • 2 -> Vorläufig gelöscht, wird für keinen Benutzer außer Admin-Benutzern angezeigt
  • 3 -> Wird nur für Entwickler angezeigt.

Wenn Sie die anderen 2 Ebenen haben, können Manager und Administratoren die gelöschten Listen immer noch bereinigen, wenn sie zu lang werden. Und da der Front-End-Code nur auf is_deleted = 0 prüft , es ist für das Frontend transparent...