Хм, и аз си мислех за това.
- Лично за мен да имам таблица за ревизии на таблица за запазване не би било толкова голям проблем, но хей.
- Потребителското име може да се запази с дефинирани от потребителя променливи, според мен (след началото на сесията издава нещо като
SET @user='someone'
, и използвайте това. - Докато има тригери след INSERT, UPDATE и DELETE, получаването на предишните/следващите стойности е проста заявка, ще съхранявам само СТАРИТЕ стойности.
Накратко, за таблица с колони (a,b,c) бих създал таблица с колони (user_id,modtime,a,b,c).
Основни недостатъци:
- пакетните актуализации са бавни (така че изберете внимателно таблиците си, за да съхранявате ревизии)
- луксозно дублиране на данни, вие/ще трябва да имате достатъчно място за съхранение
- „свързаните“ данни не задействат ревизия (т.е. промяна на
group_members
таблицата всъщност не променяgroups
таблица, докато може да искате да запазите това като момент във времето заgroups
вместо да се рови презgroup_members
промени.
Като цяло ми се струва добра сделка, но тъй като рядко съм го виждал на практика, трябва бъдете убедителни причини защо е лошо, така че ще чакам тези отговори.