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...