我正在研究 SSMS 2012。
我创建了一个 Facttable 及其维度,两者都与 ParentID 关系连接。我创建了以更用户友好的方式显示 Facttable 和维度的视图(简单地取消透视)。当我使用 LEFT OUTER JOIN 从这些视图中获取信息时,一切都完美无缺。
事情是在我的某些维度上,我与我的 Facttable 有 n 对 1 的关系。例如,我在我的 Facttable 中存储了有关一家公司的一般信息,并将其股票的每日价值存储在维度中。
“问题”是当我对视图进行 LEFT OUTER JOIN 时,我在表的左侧部分有很多冗余信息(对应于公司的一般信息)。
给你一个想法:
NAME CITY DATE STOCK_PRICE
Alpha Tokyo 05/01/2017 2.2
Alpha Tokyo 04/01/2017 2.3
Alpha Tokyo 03/01/2017 2.1
Alpha Tokyo 02/01/2017 2.0
Alpha Tokyo 01/01/2017 2.4
我知道 NULL 的处理方式比“实际”值更有效。我们的想法是实现类似的目标。
NAME CITY DATE STOCK_PRICE
Alpha Tokyo 05/01/2017 2.2
NULL NULL 04/01/2017 2.3
NULL NULL 03/01/2017 2.1
NULL NULL 02/01/2017 2.0
NULL NULL 01/01/2017 2.4
在最好的情况下,这个想法对于来自 Facttable 和不同维度的多个“冗余”信息是可行的(如果同一公司每天存在不同的价格,相同的日期只会出现一次,然后将为 NULL)
这是我的想法,但请随时就此事发表您的意见。核心是真的要避免我的大的 1 对 n 关系,让我的电脑很难。