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_membersTabelle ändert nicht wirklich einegroupsTabelle, während Sie dies vielleicht als Zeitpunkt fürgroupsbehalten möchten anstatt durchgroup_memberszu 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.