我正在爲VoIP服務創建關於「呼叫記錄系統」的維度模型。 我將舉例說明一個小例子來展示我的問題。尺寸建模 - 無事實查詢
假設我有一個事實表示一次調用。我有一個叫做Client的維度,另一個叫做Provider。 (假裝有其他尺寸,當然一樣的日期,等..)
(Dimension)Client ---> (Fact)Call <--- (Dimension)Provider
有了這個,我就可以看到有多少調用客戶端做了,或有多少電話是通過發送提供者和其他問題。
而且讓我們假設一個客戶端與一個提供者關聯,並且一個提供者可以擁有多個客戶端。
所以,問題來了。嗨,我可以創建一個查詢,如:每個提供商有哪些客戶端?
它似乎是一個查詢,只是在兩個維度之間。我不能涉及這個事實,因爲如果客戶端從未使用該服務,他不會在呼叫事實表上,並且他不會在這個「每個提供商的客戶端」查詢上進行操作。
我一直在想,要做到這一點的一種方法是創建一個角色扮演維度,一個客戶維度的視圖,並將其直接添加到提供者維度,以便執行像這樣的查詢。這將是這樣的:
(Dimension)Client ---> (Fact)Call <--- (Dimension)Provider <--- (Dimension)View Client
當然,使用這種方法,用戶必須非常小心,以不使用與事實表這個View Client的尺寸,因爲它會重複的事實行。
那麼,這是我需要使用着名的非事實型事實表的情況之一嗎?
什麼是正確的方法來做到這一點?
謝謝!