Mengekalkan Sejarah Perubahan Rekod dalam MySQL
Pengguna MySQL sering menghadapi dilema menjejaki perubahan yang dibuat pada rekod dalam pangkalan data. Ini menjadi sangat relevan apabila memastikan integriti data, menyediakan jejak audit atau pulih daripada pengubahsuaian yang tidak disengajakan. Untuk menangani cabaran ini dengan berkesan, mari kita terokai penyelesaian yang cekap dan mudah.
Membuat Jadual Sejarah dengan Pencetus
Pendekatan yang dicadangkan melibatkan mencipta jadual sejarah untuk setiap jadual data yang anda nak jejak. Jadual sejarah ini akan mencerminkan struktur jadual datanya yang sepadan, menambah tiga lajur tambahan: 'tindakan' untuk menandakan operasi (sisip, kemas kini atau padam), 'semakan' untuk penjujukan dan 'dt_datetime' untuk menangkap cap waktu operasi.
Untuk mengekalkan sejarah, pencetus disediakan pada jadual data. Selepas memasukkan, mengemas kini atau memadam operasi, pencetus memasukkan baris baharu ke dalam jadual sejarah, menangkap maklumat yang berkaitan bersama-sama dengan nilai lama dan baharu bagi medan yang diubah. Perlu diingat bahawa kami menggunakan enjin MyISAM untuk tujuan penjujukan.
Menyiasat Rekod Sejarah
Untuk melihat sejarah rekod tertentu, cuma sertai jadual sejarah ke jadual data pada lajur kunci utama. Dengan menapis pada nombor semakan, anda boleh mendapatkan semula semakan tertentu atau membuat paparan untuk mempamerkan perubahan yang dibuat dari semasa ke semasa untuk lajur tertentu.
Contoh
Andaikan kita mempunyai jadual dipanggil 'Produk' dengan lajur 'ID', 'Nama' dan 'Kuantiti'. Untuk menjejaki perubahan pada jadual ini, kami membuat jadual sejarah yang sepadan yang dipanggil 'Products_History' dengan lajur 'action', 'revision' dan 'dt_datetime' tambahan.
Selepas menyediakan pencetus, sebarang sisipan, kemas kini , atau padam operasi pada 'Produk' akan direkodkan dalam 'Products_History'. Kami kemudiannya boleh menyertai dua jadual ini pada lajur 'ID' untuk melihat sejarah perubahan bagi mana-mana produk tertentu.
Faedah
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjejaki dan Menyoal Perubahan Rekod dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!