SSAS一对多维度关系

bmc*_*bee 5 sql ssas dimensions relationship primary-key-design

SSAS中的问题.我试图在OLAP SSAS多维数据集环境中定义一对多关系.但是,我遇到了定义主键的问题.示例表如下.前3个表之间的关系很容易定义(TradeDate,NYMEX Trades和NYMEX Contract).但是,我的目标是在NYMEX合同和模型合同之间建立一对多的关系.换句话说,来自1 NYMEX Contract的数据将在Model Contract数据集中多次使用.

表:TradeDate

  • TradeDate(PK)
  • 月等......

表:NYMEX交易(无PK)

  • ContractName
  • TradeDate
  • 价钱

表:NYMEX合约

  • 合同名称(PK)

表:模型合同

  • ModelContractName(PK)
  • ContractName

我需要在NYMEX合约和模型合同之间创建一对多的关系......但是我的PK在模型合同中的错误列上.有任何想法吗?

为了帮助澄清 - 我试图定义维度 - >维度关系.表"模型合同"是查找表.

Ali*_*ani 6

您所拥有的是您的事实数据(交易)与维度数据(模型合约)之间的多对多关系的示例.看看这个:维度关系.您的情况很少见,因为模型合同只能分配给一个合同名称,但仍然属于多对多案例.这是在维度建模中使用桥接表来处理的,在SSAS中它们称之为中间事实表.一旦你有这样的DSV设置: 在此输入图像描述

然后,您将在项目中创建维度,然后为ModelContract创建度量值组,以便能够将其用作中间事实表.然后,您将为多维数据集设置维度用法,选择多对多关系:

在此输入图像描述 在此输入图像描述

作为旁注,您应始终使用代理键作为尺寸.它们有几个优点,例如事实表中的存储空间,缓慢变化的尺寸,源系统解耦,......