数据库命名设计规范

  • 格式:doc
  • 大小:63.00 KB
  • 文档页数:11

1 数据库命名、设计规范

一、 数据库表及字段

1. 数据库表的命名规范:

表的前缀应该用系统或模块的英文名的缩写(全部大写)。如果系统功能简单,没有划分为模块,则可以以系统英文名称的缩写作为前缀,否则以各模块的英文名称缩写作为前缀。例如:如果有一个模块叫做BBS(缩写为BBS),那么你的数据库中的所有对象的名称都要加上这个前缀:BBS_ + 数据库对象名称,BBS_CustomerInfo标示论坛模块中的客户信息表。

表的名称必须是易于理解,能表达表的功能的英文单词或缩写英文单词,无论是完整英文单词还是缩写英文单词,单词首字母必须大写。如果当前表可用一个英文单词表示的,请用完整的英文单词来表示;例如:系统资料中的客户表的表名可命名为:SYS_Customer。如果当前表需用两个或两个以上的单词来表示时,尽量以完整形式书写,如太长可采用两个英文单词的缩写形式;例如:系统资料中的客户物料表可命名为:SYS_CustItem。

表名称不应该取得太长(一般不超过三个英文单词)。表名长度不能超过30个字符,表名中含有单词全部采用单数形式,单词首字母必须大写。在命名表时,用单数形式表示名称。例如,使用 Employee,而不是 Employees。对于有主明细的表来说。明细表的名称为:主表的名称 + 字符Dts。例如:采购定单的名称为:PO_Order,则采购定单的明细表为:PO_OrderDts;对于有主明细的表来说,明细表必须包含两个字段:主表关键字、SN,SN字段的类型为int型,目的为与主表关键字联合组成明细表的关键字,以及标示明细记录的先后顺序,如1,2,3……。表必须填写描述信息,后台表名尽量与前台表名相同,后台独有的表应以_b作为后缀。如r_gggd_b。

数据库表的命名采用如下规则:

1)表名用模块名_开头,表名长度不能超过30个字符,表名中含有单词全部采用单数形式,单词首字母必须大写。

2)多个单词间用下划线(_)进行连接。若库中有多个系统,表名采用系统名称+单词或多个单词,系统名是开发系统的缩写,如VNET。 2 3)表中含有的单词建议用完整的单词。如果导致表名长度超过30个字符,则从最后一个单词开始,依次向前采用该单词的缩写。(如果没有约定的缩写,则采用该单词前4个字母来表示)。

2. 字段的命名、设计规范

1)命名规范

凡是具有国家局标准数据要素字段命名规范的遵照国家局标准定义;国家局尚未制定标准的遵照信息资源规划中三段式命名规则命名,字段名不超过18个字符为限。

三段式命名规则如下:修饰词+基本词+类别词,修饰词可以为空。

类别词描述数据要素的性质,常见的类别词及其定义标准如下表:

类别词 标注 编码 名称

编号 ID 金额 AMT

编码 CODE 名称 NAME

数量 QTY 日期 DATE

说明 DESC 时间 TIME

是否 IS 备注 NOTE

类别 TYPE 级别 LVL

毛利 GRS 价格 PRI

个数 NUM

数据库字段的命名必须遵循以下规范:

采用有意义的字段名。字段的名称必须是易于理解,能表达字段功能的英文单词或缩写英文单词,单词首字母必须大写,一般不超过三个英文单词。例如:人员信息表中的电话号码可命名为:Telephone或Tel。产品明细表中的产品名称可用ProductName表示。(推荐一般用完整的英文单词)。

系统中所有属于内码字段(仅用于标示唯一性和程序内部用到的标示性字段),名称取为:“ID”,采用整型或长整型数,具体根据可能的数据量确定,增加记录时取最大值加1,该字段通常为主关键字。 3 系统中属于是业务范围内的编号的字段,其代表一定的业务信息,比如资料信息和单据的编号,这样的字段建议命名为:“Code”,其数据类型为varchar,该字段需加唯一索引。

在命名表的列时,不要重复表的名称;例如,在名为 Employee 的表中避免使用名为

EmployeeLastName 的字段。

不要在列的名称中包含数据类型。

2)设计规范

所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必须有默认值。字符型的默认值为一个空字符值串’’;数值型的默认值为数值0;逻辑型的默认值为数值0;其中:系统中所有逻辑型中数值0表示为“假”;数值1表示为“真”。datetime、smalldatetime类型的字段没有默认值,必须为NULL。当字段定义为字符串形时建议使用varchar而不用nvarchar。建议在大多数表中(如报销单,申请单),应都有以下字段:字段名说明类型默认值CreatorID创建者int0,CreatedTime创建时间DatetimeNULL

字段的描述 数据库中每个字段的描述(Description)如下:

尽量遵守第三范式的标准(3NF)。表内的每一个值只能被表达一次;表内的每一行都应当被唯一的标示;表内不应该存储依赖于其他键的非键信息

如果字段事实上是与其它表的关键字相关联而未设计为外键引用,需建索引。

如果字段与其它表的字段相关联,需建索引。

如果字段需做模糊查询之外的条件查询,需建索引。

除了主关键字允许建立簇索引外,其它字段所建索引必须为非簇索引。

字段必须填写描述信息。

二、 数据文件 4 如果数据库采用文件系统,而不是裸设备,约定下列命名规则:

1)数据文件以表空间名为开始,以.dbf为结尾,全部采用小写英文字母加数字命名。如该表空间有多个数据文件,则从第2个数据文件开始,在表空间名后加_。 例:对system表空间的数据文件:system.dbf,system_2.dbf

2)对oracle数据库的控制文件,用control.ctl来表示。如control01.ctl,control02.ctl。

3)对oracle数据库的日志文件,在线日志文件用redo.dbf来表示。其中组名和文件序列名均用2位数字来表示。如第一组的两个文件表示位redo0101.dbf和redo0102.dbf。归档日志用arch_%t_%s.arc来表示。其中%t和%s均为oracle约定的变量。

三、 表空间

1. 数据库系统表空间

数据库系统表空间包括system表空间,临时表空间,回滚段的表空间。约定下列命名规则:

1)system表空间由数据库直接限定,不能进行修改。

2)临时表空间用temp来表示。如果有多个临时表空间,从第2个临时表空间开始,在temp后面加_数字来表示。

3)回滚段表空间用undotbs来表示。如果有多个回滚段表空间,从第2个回滚段表空间开始,在undotbs后面加_数字来表示。

2. 数据库的用户表空间

数据库的用户表空间用两个字母_来表示。例如:烟叶系统的表空间名为YY_。其中,表空间名分为:

1)数据空间:对于用户的缺省表空间,用default来表示。对于其他的表空间,根据存放在表空间上的表的类别来表示。如放代码的表,用code来表示。放客户资料的表,用customer来表示。尽量用一个表空间来存放该类的表。如果某表特别大,可考虑单独使用一个表空间。

2)索引空间:在相应的数据表空间的名字前加ind_。如对用户缺省表空间的索引空间,用yy_ind_default来表示。对代码表的索引表空间,用yy_ind_code来表示。

四、 存储过程

1. 命名规范 5 存贮过程的命名请遵循以下命名规范:PROC _ + 系统模块缩写(与表前缀类似)+_ +

功能标识 + 代表存贮过程操作的主要表名(不带前缀)或功能的英文单词或英文单词缩写。

如果一个存贮过程只对一个表进行操作,建议存贮过程的名称就用存贮过程所操作的表的表名(不带前缀)。这样有利于根据表名找到相应的存贮过程。

为了在众多的存贮过程中能很快的找到并维护存贮过程,我们按存贮过程的作用将系统的存贮过程进行以下的分类及命名:(以下示例假设存贮过程所在的模块名为ORG)作用第一前缀,第二前缀名(功能标识)示例

用于新增的存贮过程PROC_ORGAddPROC_ORG_Add_Employee

用于修改的存贮过程PROC_ORGUptPROC _ORG_Upt_Employee

用于删除的存贮过程PROC_ORGDelPROC _ORG_Del_Employee

用于单据查询的存贮过程PROC_ORGQryPROC _ORG_Qry_Employee

用于报表统计的存贮过程PROC_ORGRptPROC _ORG_Rpt_GetEmployee

用于一些特殊过程处理的存贮过程PROC_ORGOthPROC _ORG_Oth_SetSystemMessage

如果系统中的存贮过程只有一级,则遵照以上规则命名,如果存在多级,则需要区分其属于哪一级,具体为:PROC + 所属的级次 + _ + 后面的部分,例如:

PROC1_ORG_Add_Subject (没有调用其它存贮过程)

PROC2_ORG_Upt_Subject (调用了第1级的存贮过程)

PROC3_ORG_Qry_Subject (调用了第2级的存贮过程)

2. 设计规范

在存贮过程中必须说明以下内容:

目的:说明此存贮过程的作用。

作者:首次创建此存贮过程的人的姓名。在此请使用中文全名,不允许使用英文简称。 6 创建日期:创建存贮过程时的日期。

修改记录:

修改记录需包含修改顺序号、修改者、修改日期、修改原因,修改时不能直接在原来的代码上修改,也不能删除原来的代码,只能先将原来的代码注释掉,再重新增加正确的代码。修改顺序号的形式为:log1,log2,log3。。。,根据修改次数顺序增加,同时在注释掉的原来的代码块和新增的正确代码块前后注明修改顺序号。

对存贮过程各参数及变量的中文注解。

五、

视图

1. 命名规范

视图的命名请遵循以下命名规范:View _ + 系统模块缩写(与表前缀类似)+_ + 功能标识 + 代表视图查询的主要表名(不带前缀)或功能的英文单词或英文单词缩写。如果一个视图只对一个表进行查询,建议视图的名称就用视图所查询的表的表名(不带前缀)。这样有利于根据表名找到相应的视图。为了在众多的视图中能很快的找到并维护视图,我们按其作用将系统的视图进行以下的分类及命名:(以下示例假设视图所在的模块名为ORG)作用第一前缀,第二前缀名(功能标识)示例

用于单据查询的视图View_ORGQryView_ORG_Qry_Employee

用于报表统计的视图View_ORGRptView_ORG_Rpt_GetEmployee

用于一些特殊过程处理的视图View_ORGOthView_ORG_Oth_SetSystemMessage

如果系统中的视图只有一级,则遵照以上规则命名,如果存在多级,则需要区分其属于哪一级,具体为:View + 所属的级次 + _ + 后面的部分