初めての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)に適用できますか?私は多くの概念を混ぜているのだろうか、いくつかのガイダンスを大いに感謝します。