SAP table 有三种类型:transparent, cluster and pool;
1.What is transparent, cluster and pool table? where and when we u the tables?
透明表同时存在于dictionary 和databa中, 且具有完全相同的结构,相同的数据与栏位。
Pooled table 是一种逻辑表,在定义它的同时必须要将其分配到 一个 table pool中去。而pooled table则是用来存储control data的。几个pooled table是可以被整合到一个table pool中的。这些pooled table的数据会于同一个databa table 中更新。
簇表则是在定义的时候必须要分配到一个table cluster中去的。也是用来存储control data的。他们用来存储临时的数据和文本,例如文档。
2.What's the major difference between standard tables, Pooled tables and Clustered tables?
透明表是用来直接存储数据的,也即物理的。你可以在系统以外用例如SQL语句来直接读取db的数据。
透明表是一对一的表,例如当你创建一个透明表的同时,完全相同的一个表将会被创建在DB中,主要用于存储交易数据。
而cluster和pooled表是不能从外部访问的,因为其数据都是被聚合和汇集到一个栏位中的。
原因之一是他们的数据于长度和构造上的不同。ABAP于数据库层面的操作亦受限。
但是pool和cluster表是多对一的关系表。这意味着很多的pool表可以被存储到一个table pool中。
所有的pool table于table pool中存储都是不需要foreign key的,但是cluster table是要的。而且这两种table都是用于存储应用数据的。
一个table pool可以包含10到1000个每个可以有10到100笔数据的小的pool table,而cluster table则只可以包含1到10个但超大的cluster table。
对于pool和cluster table,你既可以使用condary index和lect distinct,group,也可以使用native SQL语句。
Structure 是没有数据的table。它只在程式逻辑中需要它的那一刻装入数据。
而View只是一种看待table中内容的方式。它只是改变了table中数据的表现方式而已。你实际调用的仍然是下面的table。
SAP中Cluster table与Transparent table有何区别
简单的说:
Transparent table是对应数据库中实际存在的表,可以在数据库中直接找到
cluster table:数据库表中存放的一条实际记录,可能对应的是系统中多张表中的逻辑记录
详细请看Library里对Cluster table和pooled table的解释