声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4295513.html
 
有些特征是不带属性的(如下面的电话号码、过期日期、交货完成标识)——称简单特征,这种特征是不带主数据的,即没有属性P表(但还是有S表,用来存储SID的底表,加快查询速度);有些是带文本的(如下面的性别标识有文本),会有对应的T表文本表;再如下面的Product即带属性、又带文本、还带层次关系,只要是带属性的特征,在底层就会有一张P表与之对应(文本、层次也是有对应的底表的):
带属性、文本、层次的特征:

时间相关的层次:

如果某个特征带层次结构,特征的“Attribute Only”不能勾上
 
SID表:只要是特征,不管该特征是否是勾上了“仅属性Attribute Only”选项,也不管该特征是否带属性、文本、层次,特征都会有一个SID表,该表中特征本身是主键,而SID字段为整型类型字段,这样设计的目的是加块查询的率效(因为一般通过整型类型的字段进行关联与查询速度要快,Fact表里存储的就是SID,不是特征本身的值),所以SAP在设计特征时都会生成一个SID表:
 
 
M表:实质上不是表,而是视图,它的字段来自P表或Q表、或者是P表+Q表中的字段,存储了特征的 Attribute 页签中的所有附加属性。
当所有属性都是时间无关的属性时,就只有P表,没有Q表(有无P表、Q表,与是否导航无关,只与时间有关),此时M表的所有字段只来自于P表:
 
 
  • 当所有属性都是时间相关的属性时,就只有Q表,没有P表(有无P表、Q表,与是否导航无关,只与时间有关),此时M表的所有字段只来自于Q表:
 
 
 
  • 当有部分属性是时间相关的,另一部分又是与时间无关的属性时,就会有P表,也有Q表(有无P表、Q表,与是否导航无关,只与时间有关),此时M表的是由 P表与Q表Join而来:
 
 
  • 当特征的Master data/texts 页签中的 With master data勾去掉,且没有附加属性时(加了属性后,激活时With master data会自动勾上),M表就不会存在,但只要 With master data勾上,就会有M表:
  • 只要With master data勾上,即使没有附加属性,都会生成M、P表:
 
 
 
P表:只要有时间无关的属性,就会生成P表,且此时时间无关的属性都会成为该表的组成字段
X表:只要有时间无关的导航属性,就会生成X表,X表实质上就是SID,就像特征本身有一个SID表一样,因为为了导航速度快,所以需要为导航属性生成对应的SID
Q表:只要有时间相关的属性,就会生成Q表,且此时时间相关的属性都会成为该表的组成字段
Y表:只要有时间相关的导航属性,就会生成Y表,与X表一样,Y表实质上也是SID,也是为了导航速度快而生成的
 
 
 
T表:文本表
 

特征的SID表、M表、P表、Q表、X表、Y表、T表的更多相关文章

  1. Linux 在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11 块 解析?

    面试题: 在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11块,则该文件共占有 B  块号.A 256 B 266 C 11 D 256×10 linux文件系统是L ...

  2. Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间

    alter table userInfo add(msn varchar2(20)); 1.建表 create table userInfo ( id number(6), name varchar2 ...

  3. SQL中如何将一个表中的某一列的数据复制到另一个表中的某一列里

    表一: SPRD PRD_NO      SPC 001                NULL 002               NULL 003               NULL ...   ...

  4. springdata 查询思路:基本的单表查询方法(id,sort) ---->较复杂的单表查询(注解方式,原生sql)--->实现继承类---->复杂的多表联合查询 onetomany

    springdata 查询思路:基本的单表查询方法(id,sort) ---->较复杂的单表查询(注解方式,原生sql)--->实现继承类---->复杂的多表联合查询 onetoma ...

  5. 注册表的作用、bat文件中REG ADD命令添加注册表项以及bat

    注册表的用途与设置 注册表是windows的核心,里面储存着大量的系统信息,说白了就是一个庞大的数据库.如果你不懂什么是数据库,那没关系,不影响你了解注册表,不过最好对数据库有所了解.注册表里面所有的 ...

  6. pycharm 直接删掉数据表之后,makemigration和migrate 之后,数据库中依然没有生成数据表的问题

    综合分析一下行程这个问题的原因: 在终端中运行 select * from django_migrations; 查看 提交的记录,如果你的表删掉了,记录还在,那么数据库会觉得,这个表依然是存在的,所 ...

  7. java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例

    java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...

  8. MySQL---数据表基本操作(增删改查、排序、分组、连表)

    一.表操作 1.创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGINE=InnoDB DEFAULT CHARSET=utf8 是否可空,nul ...

  9. phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建

    phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建 场景:当前有一张表:Ntime,因为表太大了,考虑要分表: Ntime2017 Nti ...

  10. SQL将一个表中的某一列值全部插入到另一个表中

    1.  SQL将一个表中的某一列值全部插入到另一个表中 插入的话: insert into a(col) select col from b; 更新的话: update a set col=selec ...

随机推荐

  1. 论url

    http://www.cnblogs.com/yexiaochai/p/3650379.css文件中 background: (../images/logo.png); http://www.cnbl ...

  2. window对象中的常见方法

    <body><!-- window对象中的常见方法--><script type="text/javascript"> var timeid; ...

  3. ul+li标签制作表格

    table标签制作表格代码繁琐,且不方便后期代码维护. li标签加上css的浮动样式可以制作多种样式的表格. 代码如下: <ul id="ttttt" style=" ...

  4. thinkphp3.2整合phpexcel

    由于thinkphp3.2使用命名空间,而 PHPExcel没有使用,那么两者整合的最重要问题就是如何导入的问题. 一.PHPExcel.php和PHPExcel文件夹都放在ThinkPHP/Libr ...

  5. django for monkey(chapter one)

    一.获取设备驱动 class monkey(object): def get_devices(self): self.a = os.popen('adb devices') self.devices ...

  6. StringByAppendingPathComponent和stringByAppendingString的区别

    cyy:自我理解,不保证正确,但亲自试验确实可行:若用 stringByAppendingString  则需要手动在名称前加 “/”符号,而stringByAppendingPathComponen ...

  7. SD卡读写遇到的一些函数

    SD_SPI_ReadWriteByte(0XFF): 你的数据线写0xff,就是一直保持高,clk就有了8个,可以说只是发送的数据是0xff,这又不是SD的命令,但是它必须要靠控制器提供时钟才能工作 ...

  8. Jmeter中察看结果树中的响应数据,中文显示乱码问题处理

    打开apache-jmeter-xxx\bin\jmeter.properties文件,搜索"encoding"关键字,找到如下配置: # The encoding to be u ...

  9. Java enum(枚举)的用法详解(转)

    用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...

  10. 如何用jquery获取页面下HiddenField的值··

    怎么用jquery获取页面上HiddenField的值·· 怎么用jquery获取页面上HiddenField的值··?HiddenField的值是从后台赋值的··· 先赋值给Hiddenfield ...