2012-04-30 38 views
5

SSAS中的問題你們都是。我試圖在OLAP SSAS多維數據集環境中定義一對多關係。但是,我遇到了定義主鍵的問題。示例表如下。前三個表格之間的關係很容易定義(TradeDate,NYMEX交易& NYMEX合約)。但是,我的目標是創建NYMEX合同和示範合同之間的一對多關係。換句話說,來自1 NYMEX合同的數據將在模型合同數據集中多次使用。SSAS One to Many Dimensional Relationship

表:TradeDate

  • TradeDate(PK)
  • 月 等...

表:NYMEX交易(NO PK)

  • ContractName
  • TradeDate
  • 價格

表:NYMEX合同

  • ContractName(PK)

表:模型合約

  • ModelContractName(PK)
  • ContractName

我需要創建一個NYMEX合同和示範合同之間有很多關係......但是我的PK是在示範合同錯誤的列。有任何想法嗎?

爲了幫助澄清 - 我試圖定義維度 - >維度關係。表格「模型合同」是查找表。

+1

你應該考慮將這個問題轉移到姐妹網站:[dba.stackexchange.com](http:// dba.stackexchange.com/)用[tag:ssas]和/或[tag:mdx]標記的問題可能有更好的機會在那裏回答。 –

+0

您可以將其標記(因此版主可以將其傳送),也可以將其發佈到那裏並自行刪除此問題。 –

+0

你爲什麼要創建1-M關係而不是層次結構?如果模型合同中的合同名稱與NYMEX合同中的合同名稱相同,是否應該不是外鍵? ModelContractName似乎是Model Contract中最好的grain元素,所以名稱的不同列表應該是一個合適的候選鍵(儘管整數替代鍵可能會更好)。 – JAQFrost

回答

6

您擁有的是多對多您事實數據(交易)和您的維度數據(模型合同)之間的關係。看看這個:dimension relationship。你的情況是一種罕見的情況,因爲模型合同只能分配給一個合同名稱,但仍屬於多對多的情況。這是在維度建模中使用橋接表來處理的,在SSAS中他們稱之爲中間事實表。一旦你有你的DSV的設置是這樣的: enter image description here

你會那麼在你的項目中創建你的尺寸,然後創建一個度量組ModelContract能夠使用它作爲一箇中間事實數據表。你可以這樣設置多維數據集選擇許多一對多的關係維度用法:

enter image description here enter image description here

作爲一個側面說明,你應該總是使用代理鍵爲你的尺寸。他們有幾個優點,如在你的事實表中的存儲空間,緩慢變化的尺寸,源系統解耦,...

+0

當然,如果可能的話,考慮重新包含替代鍵! – elgabito

0

你需要在這裏做2個維度。

首先,您不應該將您的日期添加爲整個維度的一部分。日期本身應該作爲一個維度存在。

秒,正如我所看到的,您應該加入NYMEX合同和模型合同並制定維度。您可以使用命名查詢將它們加入到DSV中,或者創建SQL視圖,或者可以將兩個表在DSV上分開並在維上加入它們。

第三,NYMEX交易是您的事實表。一旦創建了兩個以前的維度,您應該將它們添加到多維數據集,並使用字段ContractName和TradeDate將它們與維度關係選項卡上的事實表結合使用

相關問題