Apa praktik terbaik untuk menyimpan metadata catatan individual dalam database?
Saya perlu menyimpan data meta umum seperti waktu pembuatan dan waktu pembaruan terakhir untuk banyak tabel di basis data saya. Saya menemukan beberapa solusi berbeda:
Simpan data meta langsung di tabel.
Pro:
- Data meta secara langsung ditautkan ke catatan
- Tidak diperlukan gabungan untuk mengambil data meta
Cons:
- Diperlukan banyak kolom duplikat (kecuali pewarisan digunakan)
- Data meta dan data bisnis tidak terpisah
Buat tabel meta data umum dengan dan gunakan kunci asing lunak untuk menautkan data ke tabel dan catatan yang benar.
Pro:
- Tidak ada duplikasi kolom
- Data meta dipisahkan dari data bisnis
Cons:
- Tidak ada tautan langsung antara data meta dan data (FK tidak dapat digunakan)
- Bergabung membutuhkan kondisi tambahan
Buat tabel meta data individual untuk setiap tabel yang membutuhkan data meta.
Pro:
- Data meta secara langsung ditautkan ke catatan
- Data meta dipisahkan dari data bisnis
Cons:
- Banyak tabel tambahan diperlukan
- Diperlukan banyak kolom duplikat (kecuali pewarisan digunakan)
Apakah ada lebih banyak pilihan, pro atau kontra daripada yang saya sebutkan di sini? Dan apa praktik terbaik untuk menyimpan data meta ini?
hstore
atauJSON
dapat memecahkan masalah Anda?