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öscht1
-> Vorläufig gelöscht, erscheint in Listen gelöschter Elemente für Verwaltungsbenutzer2
-> Vorläufig gelöscht, wird für keinen Benutzer außer Admin-Benutzern angezeigt3
-> 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...