特征的SID表、M表、P表、Q表、X表、Y表、T表

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4295513.html

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表:文本表

 

时间: 2024-11-03 22:32:13

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

mysql表名等大小写敏感问题、字段类型timestamp、批量修改表名、oracle查询历史操作记录等

mysql表名等大小写敏感问题:http://blog.csdn.net/postnull/article/details/72455768: 1 MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 2 1.数据库名与表名是严格区分大小写的: 3 2.表的别名是严格区分大小写的: 4 3.列名与列的别名在所有的情况下均是忽略大小写的: 5 4.字段内容默认情况下是大小写不敏感的. ================================================

mysql快速复制一张表的内容,并添加新内容到另一张表中

   insert into a(name,num,class)  select '小米','1001',class from b where name = '小米';    小米和1001可以当b表中不存在的字段却又要保存到a表时的写法:

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

alter table userInfo add(msn varchar2(20));   1.建表 create table userInfo ( id number(6), name varchar2(20), sex number(1), age number(3), birthday date, address varchar2(50), email varchar2(25), tel number(11) );   2.创建约束 不带约束名称的: create table userIn

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

1.  SQL将一个表中的某一列值全部插入到另一个表中 插入的话: insert into a(col) select col from b; 更新的话: update a set col=select col from b where a.id=b.id; 判断表是否存在数据库中,存在就删除 if exists (select * from Sysobjects where name='temp') begin drop table temp end

sqlserver2012 提示您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项处理

sqlserver2012 提示您对无法重新创建的表进行了更改或者启用了"阻止保存要求重新创建表的更改"选项解决办法: 使用SQL Server Management Studio连接数据库,选择"数据库"--"工具"--"选项",如下图: 在弹出选项卡中,选择"设计器"---"阻止保存要求重新创建表的更改",前面对勾去掉,点击"确定",就可以了.

您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项

最近,做设计重新使用了SQL 2008数据库,遇到一些问题.“您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项” 当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,麻烦得很. 查了下资料,找到去掉此提示的一个方法,打开SQL 2008 在最上面 工具-〉选项-〉左侧的 Designer-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧) 把钩去重新启动2008即可. 原文地址:

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

综合分析一下行程这个问题的原因: 在终端中运行 select * from django_migrations; 查看 提交的记录,如果你的表删掉了,记录还在,那么数据库会觉得,这个表依然是存在的,所以才会出现重新建表失败的问题 解决办法: delete from django_migrations where id=xxx; 删掉关于这几张表提交的记录 然后在makemigrations 和migrate 原文地址:https://www.cnblogs.com/wangyue0925/p/9

查看哪些表的哪些列含有指定字符串(如‘andy’存在哪些表的哪些列中)

-- 查看表中列含有指定字符.SQL> select * from demo1; NAME                                   ID------------------------------ ----------????                                    4andy                                    1andy1                                   2andy

sql Server中不允许保存更改您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项

今天改了sqlserver中的一张表,弹出了下面的对话框,显示不允许保存更改. 您所做的更改要求删除并重新创建以下表.您对无法重新创建的表进行了更改或启 用了"阻止保存要求重新创建表的更改"选项.这是在使用Sql Server时碰到到问 题,在网上找了下,发现在解决方法非常简单. 解决方法: 在Management Studio中,选择"工具->选项->Designers->表设计器和数据库设计器"中,把"阻止保存要求重新创建表的更改&q