私の大学では、データウェアハウスモデルとETLプロセスを設計する必要があります。データウェアハウスの多対多関係のモデリング
- コメントテキスト(文字列)
- 積スコア({0、0.5、...、4.5、5}) :私のデータ・ウェアハウスは、製品についての意見/コメントを保存しなければ、各レコードは、からなるべき
- コメント作成者(String)を
- コメント日(日)
- 製品の推奨({はい、いいえ})
- コメントアップ票(INT)
- コメントダウン票(INT) の
- 製品の長所(多くの文字列、例えば{価格、デザイン、耐久性、...})とそのカウント
- 製品の短所(多くの文字列、例えば{大きすぎる、重すぎる、価格、...})と そのカウント また、データウェアハウスで
製品についての情報を格納する必要がありますが:
- 製品カテゴリ
- 製品ブランド
- 製品モデル
最初にデータウェアハウスモデルを作成したいのですが、多面的な関係であるため、製品の長所と短所を保存する際に問題があります。通常のリレーショナルデータベースでは、単に連想テーブルを作成するだけですが、ここではどのように進めるのか分かりません。結局、ファクトテーブルを正規化したくありません。
私は以下の図で示した3つのアプローチを検討しています。私は多対多の関係を取り除くためにブリッジテーブルの方法を使用しました(ただし、私は正しく分かりません)。パフォーマンスのクエリにどのような影響があるかわかりません。
私は使用することができる第2のアプローチは、ブールカラム法です。 PROSテーブルとCONSテーブルでは、それぞれの可能な値に対して列を作成できますが、最大100の異なる賛否両論があります。可能な賛否両論の数も一定ではありません。コメントの作者は、新しい賛否両論(データソースでの動作)を列挙できますが、新しい列を追加することはできません(データウェアハウス内のデータを変更しないでください)。
私が考えているのは、PROSテーブルではプロを保つことですが、値はカンマやその他の区切り文字を使用して区切られます。 "価格、デザイン、色"。シンプルであるが、分析するのが難しいか、または&のダイスをスライスします。
この状況ではどのアプローチを使用しますか?フォームデータソースはすべてのコメントを取得し、最後の読み込み後に新しいコメントのみをロードしたいので、データウェアハウスにデータをロードするのに適していますか?