哪个Context和Alias更有用?

问题描述 投票:0回答:2

在表链接期间,我们将有循环,这将导致报告中的重复记录,因此要克服我们使用ContextAlias

在某种程度上,我知道两者都有相同的目的,但两者之间有什么区别,哪一个更有效。

我知道的一件事是alias创建了更多的表,但所有表都是逻辑结构,所以别名对上下文更有用吗?

crystal-reports alias business-intelligence business-objects
2个回答
4
投票

这有点像问,什么是更有用的工具:扳手还是螺丝刀?这取决于手头的任务。

别名是正确的,别名会创建其他逻辑表。有时这是理想的方法,但并非总是如此。

我解决问题的一种方法是首先确定单个物理维度是否存在多个逻辑维度。

例如,考虑一个带有两个日期键的事实表:transaction_dt_keycompleted_dt_key。这两个都与date_key表中的date_dim字段相关联。当然,如果要将两个事实字段连接到日期调暗表,您将创建一个循环。在这种情况下,别名是合适的 - 您可以为dim表添加别名,将事实键连接到原始和别名表,然后创建与别名表关联的新对象。

查看此示例的另一种方法是交易日期和完成日期是两个不同的事情。因此,让它们由两个不同的对象表示是合适的,并且由此可以通过别名来实现。

在这方面,宇宙中的设计将更加紧密地匹配数据集市的逻辑设计而不是其物理设计。

另一方面,当相同的维度表与多个事实表相关联时,上下文非常有用。

考虑这个例子:模型有customer_dim store_dim sales_fact returns_fact

两个事实表都有customer_idstore_id字段。连接所有键将创建一个循环。在这种情况下,上下文是合适的 - 一个上下文包括sales_fact和两个dims,另一个上下文包括returns_fact和两个dims。


0
投票

它们都用于控制宇宙中的循环。就个人而言,我在同一个宇宙中都使用过它们。它们可以是互补的。我完全同意乔的解释和例子。由于可以在模型上实际看到别名,因此维护可以比上下文更具挑战性。

© www.soinside.com 2019 - 2024. All rights reserved.