ファクト/ディムテーブルの時間値
-
03-07-2019 - |
質問
ファクトテーブルとディムテーブルを設定し、時間値を設定する最適な方法を見つけようとしています。 AdventureworksDWは、DimTimeテーブルの各タイムエントリにタイムキー(UID)を使用します。私は代わりに時間値を使用するべきではない理由がありますか?
解決
"インテリジェントキー" (この場合、コード化された日付と時間の数値)は、ディメンションの定義を変更するときに問題を引き起こす可能性があります。たとえば、ユーザーは現地時間からUTCへの変更を要求する場合があります。キーは実際には有用な数値ではなく、ディメンションの古い値です。
さらに、真夜中のロールオーバーの問題により、インテリジェントキーの日付部分がUTCと現地時間の変更の実際の日付と一致しない場合があります。
キーが問題になるのを防ぐために、キーをあらゆる種類の計算に使用することはできません。その場合、単純なGUIDまたは自動インクリメント番号よりも優れています。
自動インクリメントキー(またはGUID)は高速でシンプルです。最も重要なことは、それらはすべての次元にわたって些細な一貫性があることです。
時間にはたまたま数値マッピングがありますが、これは奇妙な偶然であり、良いデザインの基礎ではないことを確認するのに役立ちます。
所属していません StackOverflow