我在一家制造公司工作,并且正在使用事实数据,该数据既可以是零件(制造产品的输入),也可以是制造产品(公司随后出售的最终产品)的数据。由于属性不同,我为零件和产品有单独的尺寸表,它们实际上是2种不同的东西。
对于事实数据,所有属性都是相同的,只是一条记录将指向一个部分,而另一条记录将指向一个产品。一条记录不能同时指向两者。
拥有2个独立的事实表,或者拥有1个具有PartKey和ProductKey的事实表,其中之一始终指向不适用的维表中的-1或未知记录,是否有意义?
预先感谢您的帮助。
答案 0 :(得分:1)
您应该有2个事实表。
由于零件和产品是不同的对象,因此事实表中的键集不同。正式来说,它们有不同的纹理。
例如,假设您的尺寸为日期,工厂,供应商,零件,产品,客户。然后,事实“输入”纹理可能是:
事实输出量可能是:
这些事实表具有2个共享维度(日期和工厂)和2个唯一维度(供应商与客户,零件与产品)。这证实了它们的粒度是不同的,并且不应该将它们强加到一张表中-表粒度的一致性是维建模的关键要求。
您将能够在共享的维度上一起分析零件和产品,但可以分别对它们进行更专业的分析。随着时间的流逝,您将可以灵活地添加更多共享的且唯一的维度,而无需使用欺骗手段。