Hmm, ja też o tym myślałem.
- Posiadanie tabeli na tabelę do przechowywania poprawek nie stanowiłoby dla mnie osobiście większego problemu, ale hej.
- Nazwa użytkownika może być przechowywana ze zmiennymi zdefiniowanymi przez użytkownika, jak sądzę (po rozpoczęciu sesji wydaje coś w stylu
SET @user='someone'
i użyj tego. - Dopóki istnieją wyzwalacze po INSERT, UPDATE i DELETE, pobieranie poprzednich/następnych wartości jest prostym zapytaniem, będę przechowywać tylko OLD wartości.
Krótko mówiąc, dla tabeli z kolumnami (a,b,c) utworzyłbym tabelę z kolumnami (user_id,modtime,a,b,c).
Główne wady:
- Aktualizacje zbiorcze są wolne (więc wybieraj tabele, aby zachować poprawki)
- Duplikacja danych deluxe, będziesz / będę musiał mieć wystarczająco dużo miejsca
- dane „powiązane” nie wyzwalają rewizji (np. zmiana
group_members
tabela tak naprawdę nie zmieniagroups
tabeli, chociaż możesz chcieć zachować to jako punkt w czasie dlagroups
zamiast zagłębiać się wgroup_members
zmiany.
W sumie wydaje mi się, że to dobry interes, ale jak rzadko widziałem to w praktyce, musi być ważnymi powodami, dlaczego jest źle, więc będę czekać na te odpowiedzi.