如何组织维度

两个特性在什么情况下可以放在一个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

原文地址:https://www.cnblogs.com/hanmos/p/2854142.html