2

データウェアハウスをモデリングしています。私は状況を説明しましょう:DATA WARE HOUSE 1からMおよびM * Mの関係を持つモデル

  • イベント多くの会議
  • を持っているイベントは、多くのアカウント
  • イベントを持ってデビュー日と終了日

  • を持って会議が一部でなければなりません

  • 会議には、1人または複数のスーパーバイザ(1人のスーパーバイザが多数の会議を監督できます) - 多対多

  • 多くの

  • 会議は、1つまたは複数の投資家(投資家は、多くの会議に参加することができます)していると多くの - -

  • 会議は、一つ以上の発行者(発行体は、多くの会議に参加することができます)があり、多くのを多くの

ここ

私のモデルである:

enter image description here

私は少しグーグルと私たちはブリッジ・ソリューション呼んでいるものがあることがわかったが、私はよくアンクルいません私はそれを私のモデルで使用しなければならないのか、それが何であるかを考えました。

Thankx

答えて

0

ブリッジモデルは、他の言葉でスノーフレークスキーマとして呼び出すことができます。この方法は、シナリオのように多対多の関係を処理する場合に非常に役立ちます。このモデルを使用すると、ディメンション表をサブディメンション表に分割できます。通常、わかっているように、次元表には一意の行があります。あなたのシナリオからこの例を得ると、Dim_meetingとdim_supervisorには互いに固有の行があります。つまり、スーパーバイザのすべての行は一意であり、繰り返しデータは利用できません。したがって、多対多の関係を処理するには、2つのディメンションの間にブリッジテーブルを作成する必要があります。私が取った同じ例(監督者と監督者)では、監督者が多くの会議を監督することができます。 1つの会議には、あなたに応じて多くの監督者がいるかもしれません。

この場合、ブリッジテーブルをブリッジテーブルに導入すると、ブリッジテーブルには独自のID(代理キー - プライマリキー)、スーパバイザID、および会議IDが割り当てられます。会議ディメンションにはすべてユニークな会議レコードがあり、スーパーバイザディメンションには一意のスーパーバイザーレコードがあります。ブリッジテーブルには、スーパーバイザー用の多数のレコードと会議用の多数のレコードがあるため、ブリッジテーブルには多対多の関係が作成されます。

これはどのように動作するのですか。

同様の問題に対処するときに本当に素晴らしいと思われるブリッジテーブルを使用して、多くの同様の状況を処理しました。活動の種類は、イベント、ミーティング、出席、監督、なり

ACTIVITY_ID 
PARENT_ACTIVITY_ID 
ACTIVITY_LEVEL 
ACTIVITY_TYPE 
START_DATE 
END_DATE 
PERSON_ID 
other DIM Keys 

: はあなたが別の方法としては、すべてが「活動」として表現された単一EVENT_ACTIVITYの事実を持つことであるという考え

+0

あなたの答えをありがとう!私はすでにブリッジテーブルを備えたモデルを作ったが、ブリッジテーブルに2つのID(例:スーパーバイザーとミーティング)だけでなく、代理キー(プライマリキー)を追加する理由はもう1つある。 私がしたことは多対多関係に関連しているが、ブリッジ内にある各次元の間にブリッジテーブルを作成するには表IはIDの両方で参照する2つの外部キーのみを置く! –

+1

はい、デザインは問題ありません。サロゲートキーは実際には各行の一意の番号です。通常、寸法デザインでは、ほとんどの場合代理キーを使用します。特定の行を一意に識別するキーのようなものです。それが私がそれを言及した理由です。それは何も行番号として機能しません。ちょうどコンセプトに従ってください: –

+0

@ S.BM別の見方のために、私は通常ブリッジテーブルに別のサロゲートを追加しません - あなたが好きであれば、それはラインの下で役に立つかもしれませんが、それが一般化としての良い習慣であると完全には確信していない。 – Jeff

0

を得るホープあなたが包含したいことがある他の何か。 多対多の会議/スーパバイザの場合、同じ親イベントを持つ複数の監視アクティビティレコードがあります。

関連する問題