sql >> Database >  >> RDS >> Mysql

mysql (bijna) volledige controle

Hmm daar zat ik ook aan te denken.

  • Het zou voor mij persoonlijk niet zo'n probleem zijn om een ​​tabel per tabel te hebben om revisies te bewaren, maar goed.
  • Gebruikersnaam kan worden bewaard met door de gebruiker gedefinieerde variabelen, geloof ik, (na een probleem met het starten van een sessie zoiets als SET @user='someone' , en gebruik dat.
  • Zolang er triggers zijn na INSERT, UPDATE en DELETE, is het verkrijgen van de vorige / volgende waarden een eenvoudige vraag, ik zal alleen de OUDE waarden opslaan.

Kortom, voor een tabel met kolommen (a,b,c) zou ik een tabel maken met kolommen (user_id,modtime,a,b,c).

Grote nadelen:

  • batch-updates zijn langzaam (dus kies je tabellen om revisies zorgvuldig bij te houden)
  • gegevensduplicatie deluxe, u/ik moet voldoende opslagruimte hebben
  • 'gerelateerde' gegevens leiden niet tot een revisie (d.w.z. het wijzigen van een group_members tabel verandert niet echt een groups tabel, terwijl je dat misschien wilt houden als een tijdstip voor groups in plaats van door group_members te gaan wijzigingen.

Al met al lijkt het me een goede deal, maar aangezien ik het zelden in de praktijk heb gezien moet er moeten zijn dwingende redenen waarom het slecht is, dus ik wacht die antwoorden af.




  1. OpenShift-app kan geen verbinding maken met MySQL:JDBCConnectionException:Kon geen verbinding openen

  2. Basisprincipes van sys.dm_exec_requests

  3. selecteer de TOP N rijen uit een tabel

  4. Django maakt automatisch primaire sleutels voor bestaande databasetabellen