Hm, darüber habe ich auch nachgedacht.
- Eine Tabelle pro Tabelle zu haben, für die Revisionen aufbewahrt werden sollen, wäre für mich persönlich kein großes Problem, aber hey.
- Der Benutzername kann meiner Meinung nach mit benutzerdefinierten Variablen beibehalten werden (geben Sie nach dem Start einer Sitzung etwas wie
SET @user='someone'
aus , und verwenden Sie das. - Solange es Trigger nach INSERT, UPDATE und DELETE gibt, ist das Abrufen der vorherigen/nächsten Werte eine einfache Abfrage, ich werde nur die ALTEN Werte speichern.
Kurz gesagt, für eine Tabelle mit Spalten (a,b,c) würde ich eine Tabelle mit Spalten erstellen (user_id,modtime,a,b,c).
Hauptnachteile:
- Stapelaktualisierungen sind langsam (Wählen Sie also Ihre Tabellen, für die Revisionen aufbewahrt werden sollen, sorgfältig aus)
- Datenvervielfältigung deluxe, Sie / Ich müssen genügend Speicherplatz haben
- 'verwandte' Daten lösen keine Überarbeitung aus (d. h. das Ändern eines
group_members
Tabelle ändert nicht wirklich einegroups
Tabelle, während Sie dies vielleicht als Zeitpunkt fürgroups
behalten möchten anstatt durchgroup_members
zu tauchen Änderungen.
Alles in allem scheint es mir ein gutes Geschäft zu sein, aber wie ich es selten in der Praxis gesehen habe, gibt es Muss Es gibt zwingende Gründe, warum es schlecht ist, also warte ich auf diese Antworten.