首页 文章

具有父子层次结构的事实与维度之间的多对多关系

提问于
浏览
1

我有以下业务场景 . 我有一个事实表和一些事实 . 还有一个具有父子层次结构的维度类别 . 在一个Category维度中打包了许多不同的层次结构 . 我的意思是有很多不同类型的分类 . Fact和Category Dimension之间也存在多对多关系 . 事实可以绑定到当时的多个类别 . 我现在已经有大约200个层次结构,可能会多一点,但我不希望在维度表中获得超过100k-200k的行 .

我已将类别维度添加两次到多维数据集,以便能够在列和行上具有不同的层次结构 . 我的问题是,我确实看到了不同层次结构之间的交叉值 . 如果我在行上过滤一个层次结构而在列上过滤另一个层次结构,我什么都得不

我认为我的问题在某种程度上涉及多对多革命的多个选择例子,但我没有找到它的样本 .

我正在使用SSAS 2012 Multidimensional .

我也感兴趣,如果有可能像Tabular :))

这是数据库模式

CREATE TABLE [dbo] . [cat]([cat_id] [int] NOT NULL,[parent_cat_id] [int] NULL,[name] nchar NULL,CONSTRAINT [PK_cat] PRIMARY KEY CLUSTERED([cat_id] ASC)

CREATE TABLE [dbo] . [Fact]([fact_id] [int] NOT NULL,[name] nchar NULL,[value] [int] NULL,CONSTRAINT [PK_Fact] PRIMARY KEY CLUSTERED([fact_id] ASC)

CREATE TABLE [dbo] . [fact_cat]([fact_id] [int] NULL,[cat_id] [int] NULL,[id] [int] NOT NULL,CONSTRAINT [PK_fact_cat] PRIMARY KEY CLUSTERED([id] ASC)GO

ALTER TABLE [dbo] . [fact_cat] ADD CONSTRAINT [fk_fact_cat_cat] FOREIGN KEY([cat_id])REFERENCES [dbo] . [cat]([cat_id])GO

ALTER TABLE [dbo] . [fact_cat] ADD CONSTRAINT [fk_fact_cat_fact] FOREIGN KEY([fact_id])REFERENCES [dbo] . [Fact]([fact_id])GO

在此先感谢您的帮助!

1 回答

  • 0

    我通过在多维数据集中处理[dbo] . [fact_cat]表来解决这个问题 . 为此,必须添加适当的命名查询 . 我已将此虚拟副本表命名为fact_cat2 . 之后我为它创造了一个混乱 . 我已根据多次到多次革命的调查实例实施了所有这些http://www.sqlbi.com/articles/many2many/

相关问题