• 如何组织维度


    两个特性在什么情况下可以放在一个dimesion中?

    customer与material可以放在一个维度中吗?

    从技术上来说,放在一个dimesion与分别放在不同的dimesion中都是可以的,

    但是从业务的角度来说,我们就需要考虑哪种方式更好。

    一般来说,当特性是1:N的关系时,可以放在一个dimesion中,当特性之间的关系时M:N时,放在一个维度中可能就不是那么好,这主要体现在性能方面。因为这样放置,维度表可能会很大。

    这要从cube的多维结构来分析。我们知道 cube是一种多维存储的数据结构,它的实现是基于多张关系表格,而维度表就是其中的一张关系表格。我们在设计cube的维度的时候,实际上设计的就是这个表的结构。一个维度中有几个特性,这个表就有几列来存储特性相应的SID, 外加一个DIMID。

    就拿customer与material来说,维度表可能会是这样

    | DIMID | SID_customer | SID_material |

    它有3个列。如果有1000个客户,分别对应1000个物料 M:N的关系,那这个表最多可能就会有 1000*1000=1 000 000条记录。 如果每个物料都对应不同的客户,客户与物料是1:N的关系,那么这个表最多会有1000条记录。

    所以说,这个问题是要和具体的业务情况相关联的。

    如果是大批量生产的产品,物料与客户最好分别放在不同的维度中,

    但是,如果是定制生产的产品,就可以把客户与物料放在一起。

    比如模具。我公司的模具,即使同一套模具,给不同的客户也会编制不同的物料编码。因为客户的使用环境不同,客户的打模产品设计也不一样,几乎不会存在不同的工厂使用同样的模具的情况。就好像哇哈哈集团,他各个工厂所用的矿泉水瓶子都是不一样的,那肯定他所用的模具也不一样。

    SE38 SAP_INFOCUBE_DESIGNS

    SE37 RSDU_INFOCUBE_TABLE_SIZES

    0

  • 相关阅读:
    【转】大内高手—内存管理器
    [转]内存泄漏测试小工具 LeakDiag
    [转]内存泄漏测试小工具 LeakDiag
    (转)SplitContainer 控件(Windows 窗体)
    (转)c++内存分配优先使用内存池,而不是new,delete
    (转)C++内存池
    LeakDiag 使用注意
    Struts Validator验证器使用指南
    oracle JOB样例
    oralce杀session
  • 原文地址:https://www.cnblogs.com/hanmos/p/2854142.html
Copyright © 2020-2023  润新知