如何组织维度
两个特性在什么情况下可以放在一个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