ディメンションモデリングとOLAPの新機能です。 ショップのディメンションモデルを作成しようとしています。ファクトテーブルには「弱いエンティティ」のメジャーが必要です。または、親エンティティのフィールドのみを入力してください。
「注文」テーブルには、列を持っている:
'order_id(auto generated), total_order_cost, date, product_Set_Id'.
「Product_set」テーブルには、(注文ごとに各順序すなわち複数の行に注文された製品、論理的に「product_set_id」列でリンクされたテーブルが含まれている)の列があります。
'product_set_id, product_name, quantity,Cost_per_quantity'.
ERモデルの "product_set"テーブルは、 "order"テーブルに依存する弱いエンティティのようなものです。私は「product_set」からの対策はファクトテーブルには存在しないだろう、この場合にのみ'order_id(fk)'
と'total_order_cost(as measure)'
==>を追加する必要があります
私の疑問は、ファクトテーブルに ケース1です。
またはケース2:私はそこにいくつかのテーブルなど、「顧客」のような他のであるが、言及した上で私は疑問持っている同じ'order_id' and 'total_order_cost'
ための複数の行があるでしょう。この場合には'order_id(fk)','product_set_id(fk)' and 'cost_per_quantity(measure), quantity(measure), total_order_cost(measure)'
==>を追加する必要があります。
ありがとうございます!
ご回答いただきありがとうございます。だから、あなたによると、 'total_order_cost'を削除し、 'order_id'をファクトテーブルに保存する必要がありますか?オーダーに複数の商品が存在する可能性があるため、 'オーダーID'が繰り返し表示されていますか? – TheRising
こんにちは私のデザインでは、1つのFactSalesテーブルでorderとorderlineテーブルを組み合わせました。そのため、アウロゲートキーが使用されます。そして、total_order_cost(そのメジャー)を維持しないでください。しかし、注文のコストは同じままになるので、私はあなたがそれを注文ラインごとに分けることができるかどうかを提案します。あなたのtotal_order_costをcost_per_quantity * quantityとして定義してください。 – Faiz
私は間違っていればもう一度修正してください、私はあなたのデザインを理解しました。あなたのアプローチはより理にかなっていますが、代わりの解決策のようなものです。これは「スタースキーマ」のようなものです。それでも、1つのテーブル、つまり「スノーフレークスキーマ」のようなものを組み合わせずに、2つの異なるテーブルを使用するとします。 **スノーフレークスキーマの場合、対策とFKを入力する方法** ** – TheRising