0

我们最近开始研究我们的数据仓库。我们有技术员,销售员,日期,分支,客户作为我们的维度。我们在OLTP中也有交易表,例如销售订单,协议,这些表在某些情况下是相互引用的。我打算将销售订单,协议信息放入事实表中。所以,我想在两个事实表中引用上面提到的所有维度。但是,我的问题出现了。 销售订单和服务协议需要相互引用。在大多数情况下,需要在销售订单中引用协议信息。我可以在事实表中相互引用两个事实表吗? OLTP中的销售订单表包含百万条记录,协议表包含五十万条记录(最小值)。如果我可以参考这两个实际表格,你能让我知道吗?事实表引用另一个事实表?

回答

1

您是否有类似AgreementID的内容,可以将其添加到每个事实表中,然后用于钻取?这是一个退化维 - 一个没有维度表的维密钥。

+0

嗨GoogleBoy我同意托德...您可以使用AgreementID(如果有的话)作为外部参考ID(退化维度)。如果您还有其他问题,请随时分享。 –

+0

感谢托德的回复,是协议ID可用。如果我同意退化维度,我只能将销售订单事实表中的协议ID存储在右侧?但我也必须保存协议完整的信息。 销售订单将包括像属性(销售订单ID,开始日期,结束日期,金额,技术人员,销售人员) 协议也包括类似的信息,如(协议ID,名称,模板ID,协议开始日期,协议截止日期,金额, Tech) 您是否建议将这些信息存储在单独的维度表中,或者将两个事实表与参考一起存储? – GoogleBoy11

+1

嗨Google Boy..you肯定需要一个暗淡来存储您的'协议'属性。但是,将AgreementID存储在您的事实中并不会造成什么伤害,因为它可以让您在事实之间进行关联。不确定这是否是最佳做法..以不同的论据为准.... –