İlk e-ticaret şememi tasarlıyorum. Bir süredir konuyu okuyorum order_line_item
ve a ve a arasındaki ilişki hakkında biraz kafam karıştıproduct
A product
satın alınabilir. Çeşitli detaylara sahip, ama en önemlisi unit_price
.
A order_line_item
, product_id
satın alınan, quantity
satın alınan ve unit_price
müşterinin ürünü satın aldığı zamanda yabancı bir anahtara sahiptir .
Ne okudum çoğu söylüyor unit_price
üzerinde order_line_item
açıkça eklenmelidir (yani yoluyla başvuruda product_id
). Mağazanın gelecekte sipariş raporlarını, izlemeyi, bütünlüğü vb. Bozacak fiyatı değiştirebileceği için mantıklı.
Anlamadığım şey, neden doğrudan kaydetme olduğu unit_price
için değer order_line_item
?
A unit_price
değişikliğini belgeleyen bir denetim / geçmiş tablosu oluşturmak daha iyi olmaz mıydı product
?
Bir order_line_item
oluşturulduğunda, product_audit
tablonun yabancı anahtarı eklenir ve fiyat oradan (referans olarak) alınabilir.
Bana bu yaklaşımı (veriyi daha az çoğaltmak, fiyat değişikliği geçmişi vb.) Kullanmanın birçok olumlu yanı var, neden daha sık kullanılmıyor? Bu yaklaşımı kullanan bir e-ticaret şeması örneği ile karşılaşmadım, bir şey mi kaçırıyorum?
UDPATE: Görünüşe göre sorum Yavaşça Değişen Boyut ile ilgili . Yavaşça Değişen Boyut, veri ambarı ve OLAP'larla ilgili olduğu için hala kafam karıştı. Yavaş Değişen Boyut türleri ana iş işlem süreci veritabanım (OLTP) için uygulanabilir mi? Bir sürü kavramı karıştırıp karıştırmayacağımı merak ediyorum, bazı rehberlikleri çok takdir ediyorum.