sql >> Database teknologi >  >> RDS >> Mysql

mysql (næsten) komplet revision

Hmm, det tænkte jeg også på.

  • At have en tabel pr. tabel-til-behold-revisioner for ville ikke være det store problem for mig personligt, men hey.
  • Brugernavn kan beholdes med brugerdefinerede variabler, tror jeg, (efter en sessions start problem noget som SET @user='someone' , og brug det.
  • Så længe der er triggere efter INSERT, UPDATE og DELETE, er det en simpel forespørgsel at hente de forrige/næste værdier, jeg gemmer kun de GAMLE værdier.

Kort sagt, for en tabel med kolonner (a,b,c) ville jeg oprette en tabel med kolonner (user_id,modtime,a,b,c).

Store ulemper:

  • batchopdateringer er langsomme (så vælg dine tabeller for at gemme revisioner for omhyggeligt)
  • dataduplikering deluxe, du/jeg skal have nok lagerplads
  • 'relaterede' data udløser ikke en revision (dvs. ændring af en group_members tabel ændrer ikke rigtig en groups tabel, mens du måske ønsker at beholde det som et tidspunkt for groups i stedet for at dykke gennem group_members ændringer.

Alt i alt forekommer det mig at være en god handel, men som jeg sjældent har set det i praksis være overbevisende grunde til, at det er dårligt, så jeg afventer disse svar.




  1. Videregivelse af en række ints til T-SQL-lagrede proc via entity framework

  2. Hvad er den bedste måde at paginere resultater i SQL Server

  3. Opdater poster i tabel fra CTE

  4. Sender xml-strengparameter til SQL Server-lagret procedure