建模两个事实表之间的关系

时间:2014-01-27 15:58:01

标签: ssas olap olap-cube ssas-2008

我有一个销售事实表,一个订单事实表(两个行级详细信息),以及两个日期角色扮演维度(来自日期维度),用于订单日期和交易日期。

我正试图通过订单日期查看销售指标,按交易日期查看订单措施。

如果销售来自订单,则Sales表具有相关订单行的密钥,如果是非订单销售,则为零。 Order表没有任何指向相关交易的链接。

我一直试图围绕如何基于两个事实表之间的链接建立关系建模,我唯一可以开始工作的方法是创建一个基于Orders表的维度,该表只包含关键,然后使用多对多关系......这似乎完全错误,但我不确定这种情况的“正确”方法是什么。

如果可能的话,我希望按订单日期查看销售措施时,非订单销售显示为“未知”订单日期,这样您就可以看到完整的图片,而不仅仅是订单的销售情况。使用上述方法不会发生这种情况。

有关需要更改哪些内容才能使其生效的任何建议?

2 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。我将在关系数据库或DSV中的命名查询中创建一个视图,其中包含不同的非空订单ID作为单列,可以将其称为“DimOrderId”。然后从中构建一个维度,设置“空处理”属性(您必须为BIDS中的属性的“键列”属性单击“加”两次以访问此属性)为“UnknownMember”。

然后将此维度用于多对多关系。

答案 1 :(得分:0)

您应使用订单ID查找订单日期,并在销售交易事实表中放置订单日期维度键。由于每个订单可能有多个交易,反过来可能只是没有意义。如果它是1:1你可以反过来,但这意味着一旦事务发生就更新订单事实,这可能是加载时复杂性和性能损失。确保您在交易日期确实需要订购。