维度建模中的一种事实表是Accumulating Snapshot fact Table
. 如果你觉得需要复习一下这个类型的含义和定义,可以看看这篇文章:
https ://www.holistics.io/blog/the-three-types-of-fact-tables/ 。
想象一下,我们有一个累积事实表,其中包含三个重要的日期列
'Order_Datekey , Manufacturing_Datekey , Ship_Datekey'
第一次插入表时,列没有数据Manufacturing_Datekey and Ship_Datekey'
。我们只知道订购产品的日期(Order_date)。我需要知道的是我们如何处理 Date 列的空值?我在 Kimbal 书中读到的重点是在外键列中应避免 null。
'Referential
integrity is violated if you put a null in a fact table column declared as a foreign key
to a dimension table'
另一方面,我们起初对这两个日期列没有任何价值。你有什么建议?
提前致谢
您说“应在外键列中避免空值”,但这些日期真的是 FK 吗?
最有可能的是,这些日期只是订单的属性,如果日期未知(并且它们未知的原因可能是“因为它还没有发生”),那么
NULL
是表示这些属性的最佳方式。如果制造日期或发货日期是其他表的外键(或外键的一部分),则表明您可能需要重新考虑表结构。