Mah, ci stavo pensando anche io.
- Avere una tabella per le revisioni da mantenere non sarebbe un gran problema per me personalmente, ma ehi.
- Il nome utente può essere mantenuto con variabili definite dall'utente credo, (dopo l'inizio di una sessione emette qualcosa come
SET @user='someone'
, e usalo. - Finché ci sono trigger dopo INSERT, UPDATE ed DELETE, ottenere i valori precedente/successivo è una semplice query, memorizzerò solo i VECCHI valori.
In breve, per una tabella con colonne (a,b,c) creerei una tabella con colonne (user_id,modtime,a,b,c).
Principali inconvenienti:
- Gli aggiornamenti batch sono lenti (quindi scegli le tue tabelle per cui conservare le revisioni con attenzione)
- Duplicazione dati deluxe, dovrai/dovrò disporre di spazio di archiviazione sufficiente
- i dati "correlati" non attivano una revisione (ad esempio:alterare un
group_members
la tabella in realtà non altera ungroups
tabella, mentre potresti voler tenerlo come punto nel tempo per igroups
piuttosto che approfondiregroup_members
alterazioni.
Tutto sommato mi sembra un buon affare, ma come l'ho visto raramente nella pratica, deve essere motivi convincenti per cui è negativo, quindi aspetterò quelle risposte.