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

Menyimpan riwayat perubahan halaman. Sedikit seperti yang dilakukan SO untuk revisi

Hai saat ini saya sedang mengerjakan solusi untuk masalah yang sama, saya menyelesaikannya dengan membagi tabel saya menjadi dua, tabel kontrol dan tabel data. Tabel kontrol akan berisi kunci utama dan referensi ke tabel data, tabel data akan berisi kunci revisi kenaikan otomatis dan kunci utama tabel kontrol sebagai kunci asing.

mengambil tabel entri Anda sebagai contoh

Entries Table
+----+-------+------+--------+--------+
| id | title | text | index1 | index2 |
+----+-------+------+--------+--------+

menjadi

entries             entries_data
+----+----------+   +----------+----+--------+------+--------+--------+
| id | revision |   | revision | id |  title | text | index1 | index2 |
+----+----------+   +----------+----+--------+------+--------+--------+

untuk bertanya

select * from entries join entries_data on entries.revision = entries_data.revision;

alih-alih memperbarui tabel entri_data, Anda menggunakan pernyataan sisipan dan kemudian memperbarui revisi tabel entri dengan revisi baru dari tabel entri.

Keuntungan dari sistem ini adalah Anda dapat berpindah ke revisi yang berbeda hanya dengan mengubah properti revisi di dalam tabel entri. Kerugiannya adalah Anda perlu memperbarui pertanyaan Anda. Saat ini saya mengintegrasikan ini ke dalam lapisan ORM sehingga pengembang tidak perlu khawatir tentang menulis SQL. Ide lain yang saya mainkan adalah agar ada tabel revisi terpusat yang digunakan semua tabel data. Ini akan memungkinkan Anda untuk menggambarkan keadaan database dengan satu nomor revisi, mirip dengan cara kerja nomor revisi subversi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendapatkan semua baris induk dalam satu kueri SQL

  2. MYSQL REGEXP menelusuri dalam string JSON

  3. menghitung nilai mysql

  4. mysql tidak diaktifkan di phpinfo() dari php 5.3.1

  5. Validasi dan penyisipan PHP-Form menggunakan MySql