質問

MySQLデータウェアハウスで日付ディメンションを処理したい。(私はDWの世界の初心者です)

グーグルでいくつか検索したところ、主キーが単純なジェネラコディセタグコードである多くのテーブル構造(ほとんど)の日付ディメンションが見つかりました。

MySQLではUNSIGNED INTEGERの場合は3バイト対4バイトであるため、DATEフィールドを主キーとして使用しないのはなぜですか?

例: ジェネラコディセタグプレ

VS ジェネラコディセタグプレ

役に立ちましたか?

解決

dateタイプの列を持つテーブルがあり、2つの行が同じ日付になることはない場合は、この列をPRIMARY KEYとして使用できます。

主キーの完全な候補がない場合が多いため、主キーが単純なジェネラコディセタグコードである例がたくさんあります。UNSIGNED INTEGERを使用すると、挿入時にこの列をデータベースによって自動的に入力できます(一意になります)。

他のヒント

日付ディメンションは一種の特別なものです。主キーには日付(2011-12-07)または日付関連の整数(20111207)を使用することをお勧めします。これにより、ファクトテーブルを(日付で)適切に分割できます。

他のタイプの寸法については、代理(整数)キーをお勧めします。

テンプレートとして、各ディメンションには通常、unknown, not entered, error, ...のエントリがあり、多くの場合、キー0, -1, -2, ...と一致します

このため、日付ではなく整数形式の日付(20111207)を主キーとして見つけるのが一般的です。一般的なタグコードを日付型キーで表すのは少し面倒です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top