多维数据集设计 - 带有附加列的多对多映射的桥接表

Posted

技术标签:

【中文标题】多维数据集设计 - 带有附加列的多对多映射的桥接表【英文标题】:Cube Design - Bridge Tables for Many To Many mapping with additional column 【发布时间】:2010-10-14 12:41:33 【问题描述】:

我正在 SQL Server Analysis Services 2005 中制作多维数据集,并且对多对多关系有疑问。

我在两个实体之间有一个多对多关系,其中包含一个附加的描述性列作为关系的一部分。

我知道我可能需要一个桥接表来为关系建模,但我不确定将附加列存储在哪里 - 在桥接表中还是其他地方?

【问题讨论】:

【参考方案1】:

SSAS 中的多对多关系可以通过一个中间事实表来实现,该事实表包含受关系约束的两个维度键。

例如;如果您有一个包含 book-sa​​les-fact 表的多维数据集,并且您希望按作者汇总总销售额(可能有很多书,而一本书可能由许多作者撰写),您还应该有一个 author-book 中间事实表(就像在关系数据库世界中一样)。在这个桥接表中,您应该同时拥有维度键(作者和书籍)以及与当前书籍和作者相关的一些度量,例如支付给作者以编写书籍(或章节)的工资。

因此,如果您的附加列是一种度量,您应该将该列添加到中间事实表中。

【讨论】:

以上是关于多维数据集设计 - 带有附加列的多对多映射的桥接表的主要内容,如果未能解决你的问题,请参考以下文章

Fluent NHibernate:如何在关系表上映射具有附加属性的多对多关系?

Android Room - 带有附加字段的多对多关系

mysql - 来自桥接表的多对多查询[关闭]

邮政编码/城市多对多桥接表的最佳设计

流利的 NHibernate 多对多创建附加表

带有额外列的多对多自引用原则