Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql (hampir) menyelesaikan audit

Hmm, saya juga sedang memikirkan hal ini.

  • Memiliki revisi tabel per tabel untuk disimpan tidak akan menjadi masalah bagi saya pribadi, tapi hei.
  • Nama pengguna dapat disimpan dengan variabel yang ditentukan pengguna, saya percaya, (setelah sesi mulai mengeluarkan sesuatu seperti SET @user='someone' , dan gunakan itu.
  • Selama ada pemicu setelah INSERT, UPDATE dan DELETE, mendapatkan nilai sebelumnya/berikutnya adalah kueri sederhana, saya hanya akan menyimpan nilai LAMA.

Singkatnya, untuk tabel dengan kolom (a,b,c) saya akan membuat tabel dengan kolom (user_id,modtime,a,b,c).

Kelemahan utama:

  • pembaruan batch lambat (jadi pilih tabel Anda untuk menyimpan revisi dengan hati-hati)
  • duplikasi data mewah, Anda akan / saya harus memiliki ruang penyimpanan yang cukup
  • Data 'terkait' tidak memicu revisi (yaitu:mengubah group_members tabel tidak benar-benar mengubah groups tabel, sementara Anda mungkin ingin menyimpannya sebagai titik waktu untuk groups daripada mempelajari group_members perubahan.

Secara keseluruhan itu tampak bagus bagi saya, tetapi karena saya jarang melihatnya dalam praktik, harus menjadi alasan kuat mengapa itu buruk, jadi saya akan menunggu jawaban itu.




  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 GROUP_CONCAT:Memformat output

  2. Transformasi baris ke kolom dari tabel yang berbeda (union) di MySQL versi 8.0.17 menggunakan Pivot

  3. SELECT tidak berfungsi di node.js

  4. Android + MySQL menggunakan com.mysql.jdbc.Driver

  5. Mengapa baris yang dikembalikan oleh explain tidak sama dengan count()?