当前位置:文档之家› 数据库设计规范

数据库设计规范

数据库设计规范
文档信息
评审信息
职务说明版本记录
版权声明
本文档未经授权许可,不得随意拷贝或转载。

目录
版权声明 (2)
1.概述 (4)
1.1.目的 (4)
1.2.适用范围 (4)
1.3.参考文档 (4)
2.设计规范 (4)
2.1.表(Table)的设计 (4)
3.定义规范 (4)
3.1.表(Table)的定义 (4)
3.2.视图(View)的定义 (4)
3.3.字段(Field)的定义 (4)
3.4.主键(PrimaryKey)的定义 (5)
3.5.外键(ForeignKey)的定义 (5)
3.6.索引(Index)的定义 (5)
3.7.触发器(Trigger)的定义 (5)
3.8.序列(Sequence)的定义 (6)
3.9.存储过程的定义 (6)
3.10.存储函数的定义 (6)
3.11.存储包的定义 (6)
3.12.其它注意事项 (6)
4.执行脚本规范 (6)
4.1.DDL (6)
4.2.DML (6)
4.3.存储过程 (6)
1.概述
1.1.目的
本文提供数据库设计人员在设计数据模型的规范准则,也可以作为评审人员的审核依据。

1.2.适用范围
该标准适用于所有参与新系统开发的数据库设计人员。

1.3.参考文档
《ORACLE数据库命名编码规范》
2.设计规范
2.1.表(Table)的设计
●避免空列:由于空字段是一种比较特殊的数据类型,而在处理时需要特殊处理,所以应当尽量
避免,通常设计默认值是一种好的办法。

●避免重复值或列:可以通过单独建表的方式进行管理,然后与主表联系起来。

●设置唯一标识符:尽量使用ID号来唯一标识行记录,而不要使用名字或编号来区分。

而且ID最
好有数据库自动管理,避免产生ID值不统一的情况。

3.定义规范
3.1.表(Table)的定义
表名的定义:
表名称 = “模块名_” + 表义名(字母大写,独立单词用下划线_分割)
●临时表
临时表名称 = “模块名_” + 表义名(字母大写,独立单词用下划线_分割)+“_TMP”
●关联表
关联表名称 = “模块名_” + 表义名A(或缩写) +“_” + 表义名B(或缩写)
●备表
备表名称 = “模块名_” + 表义名(字母大写,独立单词用下划线_分割)+“_BAK”
3.2.视图(View)的定义
视图名的定义:
视图名称 = “V_” + “模块名_” + 视图义名
3.3.字段(Field)的定义
字段名的定义:
字段名称 = 字段内容标识(字母大写,独立单词用下划线_分割)
●命名只能使用英文字母,数字和下划线
●避免使用数据库保留字及有嫌疑的保留字
●各个表之间相关字段名尽量同名,而且属性要一致
●尽量采用有意义的字段名,且字符间根据需求添加分割符
●字段名前不要加表名等作为前缀,也不要加任何类型标识作为后缀
●所有标记ID的字段都为NUMBER型
●需要记载操作履历的表,请添加以下字段:
MODIFIED_DATE, MODIFIED_USER, LAST_UPDATE_PROGRAM, CREATED_USER, CREATED_DATE
3.4.主键(PrimaryKey)的定义
●任何表都必须定义主键
主键名的定义:
主键名称 = “PK_” + “模块名_” + 表义名(或缩写)+ “_”+ 主键内容标识(字母大写,独立单词用下划线_分割)
3.5.外键(ForeignKey)的定义
外键名的定义:
外键名称 = “FK_” + “模块名_” + 表义名(或缩写)+ “_”+ 主表义名(或缩写)+“_” + 外键内容标识(字母大写,独立单词用下划线_分割)
3.6.索引(Index)的定义
索引名的定义:
索引名称 = “IDX_” + 表名(或缩写)+ “_”+ 列名 + [“_”+ 列名] (字母大写,独立单词用下划线_分割)
3.7.触发器(Trigger)的定义
触发器名的定义:
●AFTER型触发器
触发器名称 = “TRI_” +表名(或缩写)+ “_” + “AFT_” + <I, U, D的任意组合> + “_ROW”(字母大写,独立单词用下划线_分割)
●BEFORE型触发器
触发器名称 = “TRI_” +表名(或缩写)+ “_” + “BEF_” + <I, U, D的任意组合> + “_ROW”(字母大写,独立单词用下划线_分割)
●INSTEAD型触发器
触发器名称 = “TRI_” +表名(或缩写)+ “_” + “INS_” + <I, U, D的任意组合> + “_ROW”(字母大写,独立单词用下划线_分割)
*注:I,U,D分别表示INSERT, UPDATE和DELETE行级触发器
3.8.序列(Sequence)的定义
序列名的定义:
序列名称 = “SEQ_” + “模块名_” + 表义名(或缩写)
3.9.存储过程的定义
存储过程名的定义:
存储过程名称 = “PRO_” +“模块名_” + 存储过程内容标识(字母大写,独立单词用下划线_分割)
3.10.存储函数的定义
存储函数名的定义:
存储函数名称 = “FUN_” + “模块名_” + 存储过程内容标识(字母大写,独立单词用下划线_分割)
3.11.存储包的定义
存储包名的定义:
存储包名称 = “PKG_” + “模块名_” + 存储包内容标识(字母大写,独立单词用下划线_分割)
3.12.其它注意事项
●命名不要超过30个字符
●命名不要使用双引号
●不要在对象名字符之间留空格
●不要和保留字、数据库系统或者常用函数冲突
4.执行脚本规范
4.1.DDL
执行脚本名的定义:
执行脚本名称 = “DDL_” + 系统编码 + “_”+子系统编码 + [“_”+ 用途] +“.sql”(字母大写,独立单词用下划线_分割)
4.2.DML
执行脚本名的定义:
执行脚本名称 = “DML_” + 系统编码 + “_”+子系统编码 + [“_”+ 用途] + .sql”(字母大写,独立单词用下划线_分割)
4.3.存储过程
执行脚本名的定义:
执行脚本名称 = “PRO_” + 系统编码 + “_”+子系统编码 + [“_”+ 用途] +“.sql”(字母大写,独立单词用下划线_分割)。

相关主题