会社での従業員の役割を示すスター スキーマがあります。最も単純には次のとおりです。
DimDate
DimPerson
DimPaygroup
DimRole
ファクト テーブルは次のようになります: PersonID、RoleID、PaygroupID、StartDate、EndDate
それが現在の役割である場合、Enddate は 2199 年 12 月 31 日に設定され
ます。 問題は、Paygroup を追跡する必要があることです。これは、個人の役割が変更されなくても変更される可能性があるためです。
私の最初の計画は、PayGroupEndDate というファクト テーブルに追加の列を追加することで、これを遅れて到着したファクトとして扱うことでした。これは、支払いグループが変更され、新しい行が追加されると更新されます。ただし、これが最善の解決策であるかどうかはわかりません。
ゆっくりと変化するディメンションにすることで、これをより適切に処理できますか?
StartDate と EndDate は役割専用です。つまり、人が役割を開始して退職するデータです。それがファクト テーブルの粒度です。
人は同じ役割にあり、ペイグループ間を移動することができ、これも追跡する必要がありますが、私はこれを SCD として実行しようとしていました。
更新: 個人ディメンションの属性として残すのではなく、PAYGROUP の新しいディメンションを作成することだけを考えていました。そのように変更すると、新しいレコードが入力されます。それは問題の簡単な解決策ですか?