4

8 つの外部キー (8 つのディメンションを参照) を持つファクト テーブルがありますが、8 つのキーすべてを組み合わせても行を一意に識別できません。元のデータから別の属性 (つまり、何の役にも立たない「project-id」属性) を追加して、主キーを持つことができるようにする必要がありますか? または、主キーなしでファクト テーブルをそのままにしておくことができますか? ?

4

3 に答える 3

6

ファクト テーブルの最初のルールは、行を一意に識別する粒度を宣言することです。

このテーブルの穀物を宣言していないようです。テーブルの粒度が「プロジェクトごとに 1 行」の場合は、テーブルにプロジェクトを縮退ディメンションとして含める必要があります。

于 2013-03-11T14:35:14.533 に答える
1

すべてのテーブルには主キーが必要です。これがリレーショナル ルール #1 です。

いつでも代理キーを追加できますが、一意制約を満たす属性を持つファクト テーブルのアイデアが気に入っています。私はあなたの考えを支持します。一意の制約が得られるまで属性を追加します。

于 2013-03-10T15:27:42.027 に答える
0

これらの 8 つの外部キーに加えて、各行に単純な代理キー (行インデックスなど) を含めます。これにより、ファクト テーブルのすべての行が一意に識別されます。

代理キーの場合、最初の行を 1 と言うインデックスから開始し、ファクト テーブルに新しいエントリを作成するたびにインデックスを 1 ずつ増やします。

于 2015-05-26T11:31:59.737 に答える