ブリッジモデルは、他の言葉でスノーフレークスキーマとして呼び出すことができます。この方法は、シナリオのように多対多の関係を処理する場合に非常に役立ちます。このモデルを使用すると、ディメンション表をサブディメンション表に分割できます。通常、わかっているように、次元表には一意の行があります。あなたのシナリオからこの例を得ると、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の事実を持つことであるという考え
あなたの答えをありがとう!私はすでにブリッジテーブルを備えたモデルを作ったが、ブリッジテーブルに2つのID(例:スーパーバイザーとミーティング)だけでなく、代理キー(プライマリキー)を追加する理由はもう1つある。 私がしたことは多対多関係に関連しているが、ブリッジ内にある各次元の間にブリッジテーブルを作成するには表IはIDの両方で参照する2つの外部キーのみを置く! –
はい、デザインは問題ありません。サロゲートキーは実際には各行の一意の番号です。通常、寸法デザインでは、ほとんどの場合代理キーを使用します。特定の行を一意に識別するキーのようなものです。それが私がそれを言及した理由です。それは何も行番号として機能しません。ちょうどコンセプトに従ってください: –
@ S.BM別の見方のために、私は通常ブリッジテーブルに別のサロゲートを追加しません - あなたが好きであれば、それはラインの下で役に立つかもしれませんが、それが一般化としての良い習慣であると完全には確信していない。 – Jeff