Saya sedang merancang skema eCommerce pertama saya. Saya telah membaca sekitar subjek untuk sementara waktu, dan saya agak bingung tentang hubungan antara a order_line_item
dan aproduct
A product
dapat dibeli. Ini memiliki berbagai detail, tetapi yang paling penting adalah unit_price
.
Sebuah order_line_item
memiliki kunci asing untuk product_id
pembelian, quantity
pembelian dan unit_price
pada saat pelanggan membeli produk.
Sebagian besar dari apa yang saya baca mengatakan bahwa unit_price
pada order_line_item
harus ditambahkan secara eksplisit (yaitu tidak dirujuk melalui product_id
). Masuk akal, karena toko dapat mengubah harga di masa depan yang akan mengacaukan laporan pesanan, pelacakan, integritas dll.
Hal yang saya tidak mengerti, mengapa langsung menyimpan unit_price
nilai ke order_line_item
?
Bukankah lebih baik membuat tabel audit / sejarah yang mendokumentasikan unit_price
perubahan product
?
Ketika suatu order_line_item
dibuat, kunci asing dari product_audit
tabel ditambahkan dan harga dapat diambil (dengan referensi) dari sana.
Tampaknya bagi saya ada banyak hal positif untuk menggunakan pendekatan ini (lebih sedikit duplikasi data, riwayat perubahan harga, dll), jadi mengapa tidak lebih sering digunakan? Saya belum menemukan contoh skema eCommerce yang menggunakan pendekatan ini, apakah saya kehilangan sesuatu?
UDPATE: Sepertinya pertanyaan saya terkait dengan Perlahan Mengubah Dimensi . Saya masih bingung karena Dimensi Perlahan-lahan Berubah berkaitan dengan data warehouse dan OLAP. Jadi bisakah jenis Slowy Changing Dimension diterapkan ke basis data proses transaksi bisnis utama (OLTP) saya? Saya bertanya-tanya apakah saya sedang mencampur banyak konsep, Akan sangat menghargai panduan.