初めてのeコマーススキーマを設計しています。私はしばらくの間このテーマについて読んでいますが、との関係について少し混乱order_line_item
していますproduct
A product
を購入できます。さまざまな詳細がありますが、最も重要なのはunit_price
です。
Anがorder_line_item
への外部キーがあるproduct_id
、購入quantity
購入しunit_price
た時点で、顧客が製品を購入します。
私が読んだもののほとんどは、を明示的に追加unit_price
するorder_line_item
必要がある(つまり、を介して参照しないproduct_id
)と述べています。店舗は将来的に価格を変更する可能性があり、注文レポート、追跡、整合性などを台無しにする可能性があるため、理にかなっています。
私が理解していないことは、なぜunit_price
値を直接保存するのorder_line_item
ですか?
のunit_price
変更を記録する監査/履歴テーブルを作成する方が良いproduct
でしょうか?
ときにorder_line_item
作成され、の外部キーproduct_audit
テーブルが追加され、価格はそこから(参照によって)取得することができます。
このアプローチを使用することには多くの利点があるように思えます(データの重複、価格変更履歴など)。このアプローチを使用するeコマーススキーマの例に出くわしていませんが、何か不足していますか?
UDPATE:私の質問はSlowly Changing Dimensionに関連しているようです。ただし、緩やかに変化するディメンションはデータウェアハウスとOLAPに関連しているため、私はまだ混乱しています。それで、Slowy Changing Dimensionタイプをメインのビジネストランザクションプロセスデータベース(OLTP)に適用できますか?私は多くの概念を混ぜているのだろうか、いくつかのガイダンスを大いに感謝します。