我有一个包含材料和产品详细信息的主数据在一个表中。我正在创建一个星型模式,我的问题是,我是否需要创建具有单独材料属性和产品属性的两个维度表,或者我是否可以在一个维度表中同时拥有这两个维度表?当前主数据外观有以下字段-
物料id、名称、类型、产品层次结构1,2,3,4...product、产品类别、子类别。在我的例子中,材料和产品都是相同的,所以只有一个id。
我正在考虑将其放在一个表中,但这是最佳实践吗?未来有什么潜在的问题吗?
先谢谢你,阿伦
发布于 2015-09-02 15:10:23
重要的(也是显而易见的)事情是,事实表有两个独立的外键: PRODUCT_ID和MATERIAL_ID,它们都引用您的单一维度表。
对于OLTP系统,这种设置并不总是最佳实践,因为在这种情况下,数据库不能强制执行引用完整性。(您可以在MATERIAL_ID列中存储产品ID )。
但是对于data-warehouse来说,数据库约束通常是不启用的,而是在加载作业中强制执行的,所以这个设置很好。
拆分的决定更多地取决于两个维度的原点。如果两者都保持在一起,我认为没有理由将它们分开。如果这两个维度是独立的,具有不同的生命周期和独立的来源,则没有理由将它们组合在一起。
而BTW Kimball IMO提到了等级级别的分裂(而不是单独的维度)。因此,他认为将产品属性、hiearchy属性和类别属性分开是错误的(这不是你的问题)。
发布于 2015-09-03 12:32:33
这取决于您的业务需求。
如果您需要生成一份报告来显示(比方说)按材料生产的产品类别的单位,那么您需要将它们保持在单独的维度中。
https://stackoverflow.com/questions/32340349
复制相似问题