Saya perlu mengatur fitur sejarah pada proyek untuk melacak perubahan sebelumnya.
Katakanlah saya punya dua tabel sekarang:
NOTES TABLE (id, userid, submissionid, message)
SUBMISSIONS TABLE (id, name, userid, filepath)
Contoh: Saya memiliki baris dalam catatan dan pengguna ingin mengubah pesan. Saya ingin melacak statusnya sebelum perubahan dan setelah perubahan.
Apa yang akan menjadi pendekatan terbaik untuk menyiapkan kolom di masing-masing tabel ini yang akan mengatakan jika suatu item "lama." 0 jika aktif ATAU 1 jika dihapus / tidak terlihat.
Saya juga ingin membuat AUDIT TRAIL
tabel history ( ) yang berisi id
status sebelumnya, id
kondisi baru, tabel mana yang terkait dengan id ini?
mysql
database-design
audit
Schwarz
sumber
sumber
Jawaban:
Silakan lihat
http://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database
Ini adalah bacaan yang sangat bagus tentang pendekatan untuk membuat Jejak Audit dalam desain database Anda. Jalur audit diperlukan untuk implementasi database. Anda harus selalu dapat melihat tindakan pengguna basis data di dalam sistem.
Kita dapat melacak baris mana yang diubah ketika dalam sistem PTA (Point in Time) kami dengan menambahkan beberapa kolom PTA (point in time) standar ke semua tabel minat PTA.
Saya menyarankan yang berikut ini:
sumber
Saat mendesain kemampuan versi dalam data Anda, ada beberapa persyaratan minimal (saya pikir):
Inilah slide presentasi yang telah saya buat beberapa kali di pameran teknologi. Ini mencakup bagaimana semua hal di atas dapat dilakukan. Dan di sini ada dokumen yang lebih detail. Saya harus minta maaf untuk dokumen - ini adalah pekerjaan yang sedang berjalan dan tidak semua bagian selesai. Tetapi itu harus memberi Anda semua informasi yang diperlukan untuk mengimplementasikan apa pun dari versi sederhana hingga akses dua waktu penuh.
sumber
This means no flag or other indicator showing which is the current version and which are "history."
, jika tidak ada bendera atau indikator, bagaimana kita membedakan versi saat ini dari versi sejarah? Terutama berdasarkan poin ketiga Anda yang Anda sarankan mereka berada di tabel yang sama.