数据库库表设计命名规范
引言
目前航运系统产品中的部分数据库表命名上存在不规范的情形,为进一步规范系统开发过程中数据表、字段等实体的命名,特制定本规范要求在后续新增表、字段时,需要严格按照本规范执行。
表名命名规则
1. 数据库表名称以“所属子系统简称”+”所属模块简称”打头,如“SH_CP_CARGO”,表示此数据表为航运子系统合同管理模块的合同货载表;
子系统简称 | 备注说明 | 模块简称 | 备注说明 |
SH | 航运子系统 | BGT | 预算管理 |
INF | 市场信息 |
EST | 航次估算 |
CP | 合同管理 |
VYG | 航次任务 |
AMI | 船舶报文 |
CML | 商务核算 |
STA | 统计报表 |
PI | 保险理赔 |
FI | 财务接口 |
BASE | 基础代码 |
FM | 文件管理 |
XT | 系统基础平台 | | |
| | | |
子系统及模块简称
2. 数据库表名按英文(而不是汉语拼音)进行取名,尽量用全名,如果表名由几个单词组成,则单词间用下划线("_")分割,如SH_BASE_BANK等 ;
3. 表名限制在30个字符内。当表的全名超过30字符时,可用缩写来减少表名的长度,如SH_CP_OIL_INFO等 ;
4. 关连表命名规则为 表A_Re _表B,RE是Relative的缩写,如: SH_CP_USER_RE_ SH_CP_FORM。
表字段名命名规则
1. 字段名为有意义的单词,或单词的缩写 ;
2. 如果字段由几个单词组成,则单词间用下划线("_")分割,如client_id,post_code等 ;
3. 字段名限制在30个字符内。当字段名超过30字符时,可用缩写来减少字段名的长度,如description --> desc;information --> info;address --> addr等 ;
4. 对于数据表之间关联冗余的字段,需要与源数据表中的字段类型、长度保持一致,如:船舶信息表中有“船舶编号VESSEL_CD”字段,在合同、航次任务等相应的业务表中都会冗余“船舶编号VESSEL_CD”,此时合同、航次任务表中的船舶编号字段需要保持与船舶信息表一致;
5. 对于数值型字段类型,精确一般建议如下:
1) 表示金额数据时,最少需要精确到小数点5位 ,字段类型设置如:NUMBER(10,5);
2) 表示百分比数值时,最少需要精确到小数点后5位,字段类型设置如:NUMBER(10,5),表示数值时为97.872%;
6. 对于时间日期类字段时,一般约定如下:
1) 只需要记录到年月日时,字段名称中用“DATE”标识,字段类型设置为DATE,如CREATE_DATE;
2) 需要记录到年月日以及时间时,字段名称中用“TIME”标识,字段类型设置为TIMESTAMP,如PAY_TIME。
7. 对于字符串类字段,一般约定如下:
1) 字段的数据量在4000英文字符以内的(一个汉字两个英文字符),字段数据类型采用VARCHAR2(XX),字段长度根据实际情况设置;
2) 字段的数据量在4000英文字符以上的,字段数据类型采用CLOB。
索引命名规则
1. 索引须按照IDX_table_<table>_<column>,其中<table>是建立索引的表名,<column>是建立索引的字段名 ;
2. 索引名限制在30个字符内,当索引名超过30字符时,可用缩写来减少索引名的长度,如description --> desc;information --> info;address --> addr等 。
主建、外键命名规则
1. 主键按照PK_<table>的规则命名,其中<table>为数据库表名,如:PK_SH_ACCIDENT;
2. 唯一键按照UK_<table>_<column>的规则命名,其中<table>为数据块表名,<column>为字段名 ;
3. 外键按照FK_<pppp>_<cccc>_<nn>的规则命名,其中<pppp>为父表名,<cccc>为子表名,<nn>为序列号 。
注释
1. 表名必须加注释。
2. 字段名必须加注释。