web-dev-qa-db-ja.com

最も低い粒度レベルが合法的にnullになる可能性がある場合はどうなりますか?

ディメンションデータストアのソースとして使用する正規化されたデータベースがあります。私が収集しているfactsの1つはOrdersであり、正規化されたスキーマはおおよそ次のようになります。

OrderDetailUnits -> OrderDetails -> OrderHeaders

ただし、ソースシステムで新しい注文が作成されると、サイズ情報がないため、OrderDetailUnitsテーブルにそのレコードがありません。

これらのテーブルを単一の非正規化テーブルにフラット化するOrdersソーステーブルを作成することを計画していますが、最新の注文データのかなりの数の最低レベルのレコードがありません...これは、ビジネスに関する限り、期待されるです。

Ordersファクトをどのように構成する必要がありますか? 「AllOrders」と「SizedOrders」のファクトテーブル/キューブを別々に作成することは、ビジネスユーザーにとって煩わしいことです。

1
Mathieu Guindon

同意する。ビジネスユーザーは、「AllOrders」および「SizedOrders」ファクトテーブルを望んでいません。

OrderDetailUnitsごとに、合法的にnullのエントリがある合成行をOrderDetailに作成することをお勧めします。 OrderDetailUnitsにあるディメンションごとに、*NotApplicable*などを入力することをお勧めします。

あなたがしていることと完全に平行ではありませんが、私はいくつかのアイデアを得るために Late Arrriving Dimensions を読むことをお勧めします。

3
Mark Iannucci