星型架构与数据建模常见最佳实践
1. 隐藏桥接表
在数据模型中实现多对多关系后,将桥接表从数据模型中隐藏是个不错的选择。桥接表存在于数据模型中,是因为它包含参与多对多关系的两个表的键列。隐藏桥接表可以避免其他连接到我们数据集来构建报表的报表创建者产生混淆。
要隐藏一个表,我们只需切换到模型视图,然后点击表右上角的隐藏/显示按钮。
2. 避免双向关系
在数据建模中,将交叉筛选方向设置为“双向”是一个常被误解且有时会被滥用的功能,也就是我们所说的双向关系。如果我们清楚自己在做什么,并且意识到它对数据模型的影响,设置双向关系本身并没有问题。但有些开发者在模型中设置了许多双向关系,结果导致了很多问题,比如在DAX计算中得到意外的结果,或者由于关系模糊而无法创建新的关系。
过度使用双向关系会增加模型出现歧义的风险,原因在于筛选传播。在很多情况下,我们可以避免使用双向关系。下面通过一个场景来说明如何避免双向关系:
场景描述
在报表页面上有两个切片器,一个用于产品类别,另一个用于筛选客户。要求客户名称切片器筛选销售数据,但不筛选产品类别数据;产品类别切片器筛选客户名称切片器。
解决方案
我们可以使用DAX中的 CROSSFILTER() 函数以编程方式定义双向关系,而不是直接设置双向关系。以下是修改后的“互联网销售”度量值:
Internet Sales Bidirectional =
CALCULATE(
[Internet Sale
星型架构与数据建模的最佳实践
超级会员免费看
订阅专栏 解锁全文
86

被折叠的 条评论
为什么被折叠?



