複数のテーブルから顧客設定を調達するためのディメンションを構築しようとしています。
ソーステーブルの例は次のとおりです。
私はすでにDimCustomerを構築しましたが、今度はCustomerPreferenceDimensionを設計する必要があります。新しいディメンションはSCD1になります。常に顧客に最新の好みを持っています。ただし、特定の顧客は複数の組み合わせを持つことができます。
今私の質問:各プリファレンステーブルのディメンションを設計するのは良いことですか?以下のように、顧客のすべてのプリファレンス属性を1つの単一のディメンションテーブルにまとめる必要があります:
強調表示された列は、顧客の独自の好みになります。*お客様は複数の設定を行うことができます。
将来、ビジネスでさらにいくつかの設定が導入され、ディメンションに含めたい場合はどうでしょうか。次に、これらの属性と、一意にするキーを上記の表に含める必要があります。
上記のように、設定ごとに個別のディメンションを実行するか、すべてを1つの大きなディメンションにマージする方がよいでしょうか。
提案をお願いします。
編集:
私の読書に加えて、私は自分の顧客の薄暗い次元と他の顧客の好みの次元との間のブリッジテーブルを設計する必要があることを理解しています。
私が計画しているのは、すべての組み合わせで各プリファレンスタイプのCustomerPreferenceディメンションを作成することです。そして、これらを多対多の顧客選好関係を持つことができるブリッジテーブルにマッピングします。
以下の例
これは正しい方法ですか、それともベストプラクティスがありますか。
[または]これは正しい方法ですか?
編集:2013年3月27日
Pondlifeの提案によると、以下のようにSnowflakeアプローチを採用しています。