zoukankan      html  css  js  c++  java
  • ABAP ——表类型分析 转载

    ABAP的表类型似乎我感觉只应该有2种,而不是大家说的3种。 

    从数据存储的原理上来看的。下面我做一个分析。

    一般情况下,我们都说ABAP中有表有3种类型 :透明表 (transparent table)、簇表(cluster table)、 池表 (pool table)。

     先来说下什么叫做透明表(transparent table):透明表是一种和数据库具有相同结构的表存储结构,假设我在SAP系统中,使用SE11创建了一个CUSTOMER TABLE 那么我创建的结构是怎么样的,在数据库的存储结构就是怎么样的,但是在SAP中,当我们对透明表调整结构的时候,不需要我们对数据库表也进行调整,这是SAP的方便的特点之一,这里需要说明我们会经常遇到的一种情况:当我们删除一行时候,保存激活会没有问题,但是为什么我们修改一行的时候,例如把DATA ELEMENT改了,怎么就不让激活了呢。遇到这种凡是对DATA ELEMENT 改变的操作,我们需要保存,然后去SE14中激活,要不然就在SE11中整行删掉重建.

    什么是簇表和表簇?CLUSTER TABLE 和TABLE CLUSTER.

    这俩名词,刚开始学的时候,真实很折磨人,根本不知道啥意思。但是随着对知识的进一步积累,慢慢的有些眉目了,也感到了它存在合理性。

    什么是簇表?我们可以很直观的理解为,在DATABASE (数据层),除了我们定义的主键,然后把其他的内容都当成表格的一个字段存起来。也就是说这个表的结构可以理解为:主键+ 一个存储功能的字段的 组合。

    然而在其中还会有PAGENO的这个字段,这就是说,一行空间不够(32KB)用,在主键相通的情况下,继续细分,用来将属于一个主键的内容联系起来的字段1、2、3.。。。。

    要理解簇表,首先自己创建一个瞧瞧吧。

    SE11,首先创建一张透明表,透明表的名字一定要少于10位。

    然后点击 UTILITES->OTHER DICTIONARY OBJECTS

    自定一个名字少于10位的表簇。(table CLUSTER)

    表簇和簇表的区别和联系?

    表簇,是该表在DATABASE的存储结构,

    簇表,是该表在SAP DICTIONARY展现在我们眼前的结构。

    于是我们就会知道为什么我们不能用NATIVE SQL去访问 这个簇表了。因为我们在SAP中的看到的字段,在DATABASE 是不存在的,是通过转化的才显示在我们SAP DICTINARY中的结构。

    恩,然后就是在SAP中我们想看到什么样的结构 就要在簇表中创建一个什么样的结构。

    簇表都是由透明表转化成的,要创建簇表,首先就要创建一个透明表,这个透明表的显示结构,就是我们想想在簇表中显示的结构,然后在SE11 进去看观看此透明表状态并且处于修改状态,点击EXTRAS -> CHANGE

    table category. 选最后一个 (RADIO BUTTON) 复制簇表的选项,是个小对勾,这个点完了,系统会自动跳到SE11的界面,好像什么也没有发生。这时候我们去DELIVERY AND  MAINTENANCE标签下面看,就会出现了一个POOL/CLUSTER的文本框,填入我们创建的表簇。激活保存。就搞定了。

    注意,这里我们要在表簇中 手工将VARKEY 删掉,换成我们表的要显示的主键, 表簇主键为我要显示主键的子集。

    而表池创建后激活就可以了。然后进入透明表CHANGE TABLE CATEGORY 中点第三个么再进去DELIVERY AND  MAINTENANCE中 填入 表池,激活。

    池表和簇表的创建过程相同。

    但是池表和簇表还是有区别的。

    INSERT 透明表 INTO 簇表。 只要透明的簇表的主键都在透明表里面就行。就是透明表主键多了也无所谓。

    INSERT 透明表 INTO 池表. 透明表和池表的主键必须相同的。

    池表和簇表的存储原理相同的。

    所以我感觉,对于从原理上来分析,我们只需要将SAP 的表分成2类就OK了。

  • 相关阅读:
    Luogu P1020 导弹拦截
    MySQL事务隔离级别和实现原理
    classloader加载class文件的原理和机制
    Spring Bean的生命周期只有这四个阶段
    Spring 源码:BeanFactory 简介以及它 和FactoryBean的区别
    开闭原则——面向对象设计原则
    HashSet的实现原理
    装饰器模式(装饰设计模式)详解
    在java中,HashMap 或者HashTable,它们的键值被放满了,会出现什么情况?
    Mybitis 批量插入实践
  • 原文地址:https://www.cnblogs.com/eric0701/p/3038585.html
Copyright © 2011-2022 走看看