0

特定の日付ディメンションと、作成、更新、キャンセルなどのアクション タイプのファクトを格納するファクト テーブルを設計しました。ファクトは 1 回だけ作成およびキャンセルできますが、何度も更新できます。

myfact
---------------
date_key
location_key
action_type_key

これにより、完了したすべての更新、一定期間に作成されたすべての新しい更新のカウントを取得し、場所のディメンションを通じて特定の地域を指定できます。

さらに、事実ごとに 2 つのカウント、つまり人数、建物の数もあります。これらの間には関係はありません。そして、特定のカウントを持つ事実の数を照会したいと思います。たとえば、建物が 10 であるファクトの数、建物が 9 であるファクトの数などです。

これらに最適なテーブルのデザインは何でしょうか。基本的に、次のオプションが表示されますが、より良い解決策を聞くことができます。

  1. カウントを参照情報としてファクト テーブルに追加しpeople_countbuilding_count

  2. これらのそれぞれに、有効なオプションを格納するディメンションを追加します。つまりpeople dimension、akeyとカウントbuilding dimensionを格納し、a とカウントを格納しkeyます。主な事実には apeople_keyと abuilding_key

  3. これらは人数と建物の両方の数に使用されます。つまりcount dimension、a と一般的な数を格納しkeyます。主な事実には apeople_count_keyと abuilding_count_key

4

1 に答える 1

0

まず、カウントは本質的に最も純粋な意味での「ディメンション」です (ディメンションは、レポート目的でレコードをグループ化する方法と考えることができます)。しかし問題は、次元モデリングがあなたのやりたいことかどうかです。ディメンション テーブルを追加するよりも、これを暗黙のディメンションのようなものと見なした方がよいと思います。これが本質的に意味することは、ディメンション テーブルは何も追加せず、数値に関連する大量の情報を追跡する必要がない限り、非常に役立つとは思わないエラーのコーナー ケースを作成するということです。

私だったら、他のテーブルではなく、ファクト テーブルにカウントを追加するだけです。

于 2013-03-26T06:47:38.030 に答える