例として、2 つのディメンションと 1 つのメジャーを持つファクト テーブルがあるとします。
FactMoney テーブル
ProjectKey int
PersonKey int
現金金額のお金
2 つの次元は次のように定義されます。
DimProject (タイプ 0 ディメンション - つまり静的)
ProjectKey int
プロジェクト名 varchar(50)
DimPerson (緩やかに変化するタイプ 2 ディメンション)
PersonKey int
PersonNaturalKey int
個人名 varchar(50)
有効開始日日時
有効終了日日時
IsCurrent ビット
これまでのところかなり簡単です。ここで、個人カテゴリの概念を紹介します。
DimCategory
カテゴリキー int
カテゴリ名 varchar(50)
DimPerson と DimCategory の間に M2M 関係を構築します。
BridgePersonCategory
PersonKey int
カテゴリキー int
つまり、人々は 1..n のカテゴリを持つことができます。
私の問題は、人はゆっくりと変化するディメンションであるため、人の名前が変更されると、新しい人の行を追加し、発効日を更新して現在のフラグであるため、大したことではありません。
しかし、個人のカテゴリをどうするのでしょうか? 新しい人のバージョンがポップアップするたびに、ブリッジ テーブルに行を追加する必要がありますか?
当然のことながら、個人のカテゴリが変更された場合、それは個人テーブルに新しい行を作成する必要があるということでしょうか?