2017-09-20 1 views
0

私のデータベースモデルには、3つのファクトテーブルがあります。これらのファクト表には、同じディメンション表(いわゆる適合ディメンション)があります。ファクト表を直接接続しないでください(直接接続ではいくつかのファクトの二重計算が発生する可能性があるため)が、ディメンション表を介してのみ行うべきです。私が興味を持っているのは、すべての事実をすべてのディメンションテーブルに問題なく結びつけることができますか?私は答えをたくさん探し、意見は分かれています。何人かは問題はないと言いますが、他の人は、この事実表が相互に関連して循環参照が発生する可能性があると言います。このような場合、いわゆるリンクテーブルを使用する必要があります。このリンクテーブルは本当に必要なのですか?リンクテーブルを使用せずに同じディメンションテーブルに接続されている複数のファクトテーブルを使用することはできますか?

答えて

0

私はモデルを(MS SQLで)実装しましたが、今後誰かがこれに興味がある場合には私の経験を共有しています。
最後に、5つのファクトテーブル(モデルがより複雑になることが判明しました)が作成されました。それらはすべて、すべての既存のディメンションテーブル(そのうちの6つ)に直接接続されています。私はリンクテーブルを使用しませんでした。
このモデルは現在5ヶ月近く使用されており、問題は現れていません。

2

ファクト・イベントの側面を表す次元がある場合は、アナリティクスで使用できるようにディメンションを接続する必要があります。

ただし、ファクトを必要のないディメンションに強制的に接続する必要はありません。それはあなたのモデルを混乱させ、肥大化させます。

ファクトを直接接続しないでください。モデルはそのように機能しません。理由を理解するために、事実と次元の目的を読み上げたいと思うでしょう。

共通のディメンションを使用して関連するイベント間を移動することはできますが、これは循環参照ではありません。循環参照は、関係の一番下にないため、値が返されるのを防ぎます。

エンティティに多対多のリレーションシップがある場合は、リンク/ブリッジテーブルを使用してリレーションシップを複数の1対多の関係に展開できます。それはモデル化するのが複雑で、この質問の一部として説明するにはあまりにも複雑です。

ご希望の場合は、モデルの一部を投稿して、質問の具体的なニーズに焦点を当てることができます。

関連する問題