2013-04-07 121 views
0

首先,这是我做的非常非常简单的数据仓库,只是提出了下面的具体问题。SSAS多维层次结构

场景:

我有一个事实表FactSales,和2个维度:DimShop和DimProduct,并且它们都彼此分开和直接地连接到事实表。一些商店可以销售选定的产品,反之亦然,有些产品可以在特定的商店进行销售。这给了我们很多关系。问题是当我尝试切割我的立方体时,我得到了商店和产品之间的所有组合。

问:

我怎样才能创建SSAS两个独立的维度之间的层次与多对多的关系?我试图使用brigde表,但我无法在SSAS中配置层次结构。它甚至有可能吗?

+1

我不明白你的问题。你想在你的报告中展示什么?作为一个完整的猜测,你试图报告哪些产品可以出售(或放入)每个商店,但我真的不知道。 – Pondlife 2013-04-08 21:24:22

+0

哦,我忘了提到整个想法,愚蠢的我。是的,你猜对了,我想展示商店,并列出每个店铺可供选择的产品。我知道它可以通过层次结构来实现。当商店和产品的数据包含在一个维度中时,创建这样的层次结构很容易,但我想为产品和商店使用单独的维度。我假设我需要桥表中的M:N关系,但是我不知道如何构建这样的层次结构,如果可能的话,在产品维度上最好。 – shq 2013-04-09 10:03:50

回答

1

如果您试图报告“会发生什么”而不是“发生了什么”,则需要单独的事实表&立方体来表示产品与可销售产品的商店之间的关系。这不是一个真正的等级,因为它是多对多的。

一个简单的交叉引用的事实应该是罚款:这样做,希望看到产品被允许在什么什么店出售报告时

FACT_PRODUCT_SHOP 
ProductID 
ShopID 

然后,你可以使用这个事实表。销售事实只显示“实际发生的事情”。

你甚至可以修改这个事实是你的库存事实表,只是增加一个日期和“库存量”和“订单量”等。

0

有可能实现这样的设计,但它可能表现不佳。 基本上,而不是事实表中的产品和商店密钥,您需要一个替代密钥。 这个关键将是产品和商店的独特组合。这需要在ETL中进行准备。 在名为“商店和产品”的新维度中,在此关键之上,您可以在同一维度创建2个层次结构产品和商店。

另外,您还可以根据您的要求创建不自然的层次结构。但由于它是一个不自然的层次,它可能表现不佳。 因此,除了产品和商店层次结构之外,您还可以提供以下非自然层次结构:商店 - >产品,产品 - >商店。