ディメンションテーブルとファクトテーブルが1:1の関係になる適切なBIソリューションを開発しようとしています。
たとえば、次のようにします。
Fact_UserData
- ユーザーID
- ロケーションID
- 職業ID
- 意味のある集計が可能な一連の数値データ
Dim_User
- ユーザーID
- 性別
- 民族性
Dim_Location
- ロケーションID
- 区域
- 街
- 州
Dim_Occupation
- 職業ID
- 職業名
この例では、Fact_UserDataとDim_UserがユーザーIDを介して常に1:1の関係にあると想定しています。
主に私を失望させているのは、1:1の関係です。専用のユーザーディメンションを使用する必要がありますか、それともこれらの属性をファクトテーブルにマージする必要がありますか?キンボールによれば、縮退した次元は運用管理番号のために予約されるべきであるため、私はマージすることを躊躇しています。また、職業を専用の次元として持つことが理にかなっているのではないかと思います。職業ごとにグループ化することは、ビジネスの観点から非常に重要です。そのため、当初は独自の次元として持っていました。
職業ディメンションの質問の一般化として、ディメンションにIDと名前の2つのフィールドしかない状況を処理するためのベストプラクティスのアプローチは何でしょうか。(通常のCustomersディメンションのように考えて、[CustomerID]フィールドと[CustomerName]フィールドのみがあることを想定してください。)ディメンションに10以上のエントリがあり、階層がないとします。