Wie kann ich Papierkorb für Datenbankanwendungen machen?
-
20-09-2019 - |
Frage
Ich habe Datenbank-Anwendung, ich möchte, damit der Benutzer die gelöschten Datensätze aus der Datenbank wiederhergestellt werden, wie in den Fenstern wir Papierkorb für Dateien habe ich das Gleiche tun wollen, aber für Datenbankeinträge, wird angenommen, dass ich viel haben von verwandten Tabellen, die viele Felder haben.
Edit:
Lassen Sie uns sagen, dass ich die folgenden Strukturen aufweisen:
Berichte Tabelle
- RepName Primärschlüssel
- report
Tabelle Benutzer
- ID Primärschlüssel
- Name
UserReports Tabelle
- RepName Primärschlüssel
- UserID Primärschlüssel
- IsDeleted
wenn ich nun Feld in UserReports Tabelle isDeleted ausgedrückt, kann der Benutzer nicht denselben Datensatz erneut hinzufügen, wenn sie als gelöscht markiert, da der Datensatz bereits ist, und dies wird Duplizierung machen.
Lösung
. Hinweis: Ich habe immer Surrogat Primärschlüssel verwenden
Fügen Sie einen Zeitstempel 'deleted_at' Spalte. Wenn Eintrag Benutzer Löschungen setzen dort aktuelle Uhrzeit an. Machen Sie diese Taste Teil Ihrer constrain.
In jeder Abfrage erinnere mich nur nach Datensätzen zu suchen, die null in deleted_at Feld haben.
Einige Frameworks (wie Activerecord) machen es trivial zu tun.