Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql (prawie) kompletny audyt

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 zmienia groups tabeli, chociaż możesz chcieć zachować to jako punkt w czasie dla groups zamiast zagłębiać się w group_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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL konwertuje moje wartości sygnatury czasowej na 0000-00-00

  2. Czy Mysql UUID_SHORT() jest porównywalny z UUID()

  3. Transakcja Mysql:zatwierdź i wycofaj

  4. MySQL Wybierz wiele wartości

  5. jak przekonwertować sesję hibernacji tylko do odczytu na zapis podczas transakcji (DB Master/Slave)