2017-05-26 4 views
0

私はデータボールトモデルを使用するデータウェアハウスを設計しています。私のデータウェアハウスには、Specialtyというエンティティがあります。 Specialty_CDからDescriptionへの1対1のマッピングを持つコードに基づいて、これらのSpecialtiesのルックアップテーブルがあります。このルックアップテーブル(特殊コードは意味を変えることができる)と私のボールト内のすべてのサテライトテーブルのデータエントリの履歴があります。データボールトモデルとルックアップテーブル

「プロフェッショナル」と呼ばれるデータボールト内の別のエンティティを、専門家が複数の専門分野を持つことができる専門エンティティにリンクしたいという奇妙なケースがありました。しかし、専門エンティティのためのハブはありません。私の現在のソリューションには、プロフェッショナルごとにビジネスキーとビジネスキーハッシュを保持するプロフェッショナルハブ、プロフェッショナルなBKハッシュを専門職の専門分野にマッピングするリンクテーブル、特殊コードから説明までのルックアップテーブルがあります。ここでのキャッチは、リンクテーブルが別のハブの代わりにハブをルックアップテーブルに接続していることです。私は助けることができないが、これがData Vaultモデルを破るように感じる。これはデータボールトモデルのルールを破っていますか?これは私の全体モデルの標準化を崩壊させるか?

Specialtiesのハブを作成すると、データ検索のための余分な結合が行われるように感じます。スペシャルティコードはすでに特殊な記述の一意の識別子なので、私はむしろ、この特殊なエンティティのための単一のルックアップテーブルを持っています。特に、専用コードの定義と記述の目的に役立つのはデータウェアハウス内のみであるためです。

このような状況についてのご意見をお待ちしております。ハブをルックアップテーブルにリンクすることで、このシナリオでデータボールトが壊れていますか?この専門エンティティのためのハブと衛星を作成するための検索にオーバーヘッドと追加の結合が必要ですか?

ありがとうございました!

答えて

2

あなたはあなた自身の質問に答えています: 「プロのプラクティスを名物の特殊コード」を

スペシャリティ明確中核事業コンセプトであり、ハブです。フィールド(コードと説明)が2つしかないという事実は無関係です。

データヴォルトはパターンに作用します。定義の目的を果たすのはデータベース内の ""ではありません。それが削除されても、データベースはまだ動作しますか?たとえば、データベースが機能し続けるアドレスから郵便番号を削除したとします。私はあなたがスペシャリティを削除した場合、一部のレポートで問題が発生する可能性があると推測します。

生データボールトを作成するときには、さらに多くのテーブル(一般的なメトリックは約7)が必要になることに慣れておく必要があります。

PCDは

0

は、私はあなたのモデルがこの

  • Specialty_HUB(HUB_ID(PK)、Specialty_CD)
  • Specialty_SAT(SAT_ID(PK)、HUB_ID(FK)、Load_Date、説明のように見えるべきだと思います)
  • Professional_HUB(HUB_ID(pk)、Professional_PK)
  • Professional_SAT(SAT_ID(pk)、(HUB_ID(fk)、Professional details ...))
  • Profesional_X_Specialty_LNK(LNK_ID(PK)、Load_Date、END_DATE、Professional_HUB_ID(FK)、Specialty_HUB_ID(FK))

この設計では、あなたがリンクテーブルでEND_DATEのための要件が​​あることに注意してくださいあなたが得るようなプロフェッショナルまたはスペシャリティのステータスとは独立して単一のアソシエーションを退職する必要があり、ETLロジックが「削除」を確実に取得するようにする必要があります。専門分野に関連するコードも変更できる場合は、リンクが安定していることを確認するために、リンクテーブルと特殊SATの間に別の抽象レイヤーが必要です。

関連する問題