Hmm, jag tänkte också på det här.
- Att ha en tabell per tabell-att behålla-revideringar för skulle inte vara så mycket problem för mig personligen, men hallå.
- Användarnamn kan behållas med användardefinierade variabler, tror jag, (efter en sessionsstart problem något som
SET @user='someone'
, och använd det. - Så länge det finns utlösare efter INSERT, UPDATE och DELETE, är det en enkel fråga att hämta föregående/nästa värden, jag lagrar bara de GAMLA värdena.
Kort sagt, för en tabell med kolumner (a,b,c) skulle jag skapa en tabell med kolumner (user_id,modtime,a,b,c).
Stora nackdelar:
- batchuppdateringar är långsamma (så välj dina tabeller för att behålla revisionerna noggrant)
- dataduplicering deluxe, du måste / jag måste ha tillräckligt med lagringsutrymme
- 'relaterad' data utlöser inte en revision (d.v.s. ändra en
group_members
Tabell ändrar egentligen inte engroups
tabell, medan du kanske vill behålla det som en tidpunkt förgroups
gräv istället igenomgroup_members
ändringar.
Allt som allt verkar det vara en bra affär för mig, men som jag sällan har sett det i praktiken måste vara övertygande skäl till varför det är dåligt, så jag avvaktar de svaren.