VoIP サービス用の「通話録音システム」に関する次元モデルを作成しています。私の質問を示すために、ほんの少しの例を示します。
1 つの呼び出しを表すファクトがあるとします。そして、クライアントと呼ばれるディメンションと、プロバイダーと呼ばれる別のディメンションがあります。(もちろん、日付などの他の次元があるふりをします...)
(Dimension)Client ---> (Fact)Call <--- (Dimension)Provider
これにより、クライアントが行った通話の数、プロバイダーを介して送信された通話の数、およびその他の質問を確認できます。
また、1 つのクライアントがプロバイダーに関連付けられており、1 つのプロバイダーが多数のクライアントを持つことができるとします。
では、ここで質問です。次のようなクエリを作成するにはどうすればよいですか: 各プロバイダーにはどのようなクライアントがありますか?
両方の次元の間にあるクエリのようです。クライアントがサービスを使用したことがない場合、そのクライアントは呼び出しファクト テーブルに含まれず、この「プロバイダーごとのクライアント」クエリに表示されないため、その事実を含めることはできません。
これを行う 1 つの方法は、クライアント ディメンションのビューであるロールプレイング ディメンションを作成し、それをプロバイダ ディメンションに直接追加して、このようなクエリを実行することではないかと考えていました。次のようになります。
(Dimension)Client ---> (Fact)Call <--- (Dimension)Provider <--- (Dimension)View Client
もちろん、このアプローチでは、ユーザーはこの View Client ディメンションをファクト テーブルで使用しないように十分に注意する必要があります。これは、ファクト行が重複するためです。
では、これは有名なファクトレス ファクト テーブルを使用する必要がある状況の 1 つですか?
これを行う正しい方法は何ですか?
ありがとう!