数据模型是数据管理的分析工具和交流的有力手段;同时,还能够很好地保证数据的一致性,是实现商务智能(Business Intelligence)的重要基础。因此建立、管理一个企业级的数据模型,应该遵循标准的命名和设计规范。
前缀为ODS_应用系统名(缩写)数据表名 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“”分割,例如:ODS_FUN_CUSTOMERINFO。表名称不能用双引号包含,表名长度不超过30个字符。如果ODS设计采用贴源设计,数据表名应与源系统一致。
系统和应用名规则如下:
核心 COR
对公信贷 CLN
个贷 PLN
基金 FUN
票据 TIC
理财 FIN
报表 RPT
……
如有新系统,按规则添加
前缀为DW_主题名(缩写)功能描述 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“”分割,例如:DW_ORD_DETAIL。表名称不能用双引号包含,表名长度不超过30个字符。
主题名规则如下:
订单 ORD
营销活动 MKC
贷款 LN
网银 NET
客户 CUS
……
如有新主题,按规则添加
数据表名规则如下:
基础表 _BASE
日汇总表 _D
月汇总表 _M
历史累计 _H
全量加载 _A
增量加载 _I
前缀为APP_主题名(缩写)功能描述 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“”分割,例如: APP_RPT_ DEALER_GOODS。表名称不能用双引号包含,表名长度不超过30个字符。
主题名规则如下:
报表 RPT
数据表名规则如下:
参考DW层表名称规范
前缀为D_ 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:D_ACCOUNT、D_PUB_DATE。表名称不能用双引号包含,表名长度不超过30个字符。
数据表名规则如下:
日期维度 D_PUB_DATE
城市 D_CITY
前缀为M_应用名(缩写)功能描述 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“”分割,例如:M_ETL_TASK。表名称不能用双引号包含,表名长度不超过30个字符。
应用名规则如下:
ETL ETL
报表 RPT
OLAP分析 OLP
源系统 SRC
数据库 DB
软硬件 SHW
……
如有新应用,按规则添加
前缀为p 。分区名必须有特定含义的单词或字串。
例如 :tbl_pstn_detail 的分区p2004100101表示该分区存储 2004100101时段的数据。
字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。
2.1.1.4. 字段排列
每个表中的字段排列也应该遵从相应的规则进行摆放:
同类属性尽量靠拢摆放
例如:“协议”实体中有一组“日期”属性,包括“开户日期”、“销户日期”、“签署日期”、“起息日期”、“到期日期”等,可以排列在一起、
相关属性尽量靠拢摆放
例如:“币种”、“金额”常常一起使用,应排列在一起;
重要的和常用的属性靠前
和源系统非常接近的表(特别是一对一的情况),和源系统的属性顺序一致
前缀为PK_。主键名称应是 前缀+表名+构成的字段名。如果复合主键的构成字段较多,则只包含第一个字段。表名可以去掉前缀。
前缀为FK_。外键名称应是 前缀+ 外键表名 + 主键表名 + 外键表构成的字段名。表名可以去掉前缀。
前缀为IDX_。索引名称应是 前缀+表名+构成的字段名。如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。表名可以去掉前缀。
前缀为IDX_PK_。索引名称应是 前缀+表名+构成的主键字段名,在创建表时候用using index指定主键索引属性。
前缀为IDX_UK_。索引名称应是 前缀+表名+构成的字段名。
前缀为IDX_FK_。索引名称应是 前缀+表名+构成的外键字段名。
前缀为IDX_func_。索引名称应是 前缀+表名+构成的特征表达字符。
前缀为IDX_clu_。索引名称应是 前缀+表名+构成的簇字段。
前缀为V_。按业务操作命名视图。
前缀为MV_。按业务操作命名实体化视图。
前缀为SP_ 。按业务操作命名存储过程。
2.1.6. 触发器
前缀为Trig_ 。触发器名应是 前缀 + 表名 + 触发器名。
2.1.7. 函数
前缀为Func_ 。按业务操作命名函数。
2.1.8. 数据包
前缀为Pkg_ 。按业务操作集合命名数据包。
2.1.9. 序列
前缀为Seq_ 。按业务属性命名。
2.1.10. 普通变量
前缀为Var_ 。 存放字符、数字、日期型变量。
2.1.11. 游标变量
前缀为Cur_ 。存放游标记录集。
2.1.12. 记录型变量
前缀为Rec_ 。 存放记录型数据。
2.1.13. 表类型变量
前缀为Tab_ 。 存放表类型数据。
2.1.14. 数据库链接
前缀为dbl_ 。 表示分布式数据库外部链接关系。
命名应该使用英文单词,避免使用拼音,特别不应该使用拼音简写。命名不允许使用中文或者特殊字符。
英文单词使用用对象本身意义相对或相近的单词。选择最简单或最通用的单词。不能使用毫不相干的单词来命名。
当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用用简或缩写,缩写要基本能表达原单词的意义。
当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别。
名称一律小写,以方便不同数据库移植,以及避免程序调用问题。
命名的各单词之间可以使用下划线进行分隔。
命名不允许使用SQL保留字。
表名、字段名、视图名长度应限制在20个字符内(含前缀)。
同一个字段名在一个数据库中只能代表一个意思。比如telephone在一个表中代表“电话号码”的意思,在另外一个表中就不能代表“手机号码”的意思。
不同的表用于相同内容的字段应该采用同样的名称,字段类型定义。
例如:
行为名称 行为英文名称 英文缩写
计数 Count cnt
金额 Amount amt
微信 Weixin Wx
成功 success succ
支付 Pay pay
地址 Address addr
订单 Order ord
渠道 Channel chl
完成 Finish Fin
固定长度的字串类型采用char,长度不固定的字串类型采用varchar。避免在长度不固定的情况下采用char类型。如果在数据迁移等出现以上情况,则必须使用trim()函数截去字串后的空格。
数字型字段尽量采用number类型,要注意精度。
2.3.3. 日期和时间
由数据库产生的系统时间首选数据库的日期型,如DATE类型。
由数据导入或外部应用程序产生的日期时间类型采用varchar类型,数据格式采用:YYYYMMDDHH24MISS。
如无特别需要,避免使用大字段(blob,clob,long,text,image等)。
对于数字型唯一键值,尽可能用自增产生。