数据库设计 命名及编码规范

http://blog.csdn.net/seusoftware/archive/2010/04/24/5524414.aspx
引用
一、综述

命名和编码过程中,定义有意义的名称,以易于理解、方便书写为原则。

(1)避免使用中文,尽量使用全拼音或全英文,以方便国际化;

(2)避免拼音和英文的中西合璧,如:CAOZUO_TIME;

(3)避免在命名中包括空格及特殊字符;

(4)避免使用保留字;

(5)避免名称太长,注意缩写的使用,缩写规则为单词前4个字母,合成词取每个单词前两位组成4位缩写,对于约定束成的缩写不必遵守取4位的规则,比如:NO代表NUMBER,如果取NUMB反而让人费解。

二、命名规范

2.1、数据库

前缀:使用与数据库业务对象相对应的英文单词或英文缩写;

名称:使用与数据库业务性质相对应的英文单词或英文缩写;

举例:BHO_STATISTIC

注意:

(1)名称一律使用单数形式;

(2)动词一律保持动宾结构,通常增、删、改、查、统计的动作,使用ADD、DEL、UPD、QRY、STA作为缩写,以降低命名的长度;

2.2、数据库文件及文件组

(1)数据库文件存放路径:D:\DATA、E:\LOG;

(2)数据库文件组命名:主文件组PRIMARY,次文件组FG_业务模块_数据分类,如:FG_CONFIG_ACCOUNT;

(3)数据库主数据文件命名:DBNAME_DATA.MDF,如:BHO_STATISTIC_DATA.MDF;

(4)数据库从数据文件命名:DBNAME_DATA_XX.NDF,XX为两位整数,不足两位第1位用0补齐,如:BHO_STATISTIC_DATA_01.NDF;

(5)数据库日志文件命名:DBNAME_LOG_XX.LDF,XX为两位整数,不足两位第1位用0补齐,如:BHO_STATISTIC_LOG_01.LDF;

2.3、数据库逻辑对象

2.3.1、架构

通常使用业务模块名作为架构名,如:配置模块(CONFIG)。

(1)方便数据库对象分类;

(2)方便权限管理。

2.3.2、表

前缀、名称、后缀均以下划线(_)间隔,字母均使用大写。

(1)实体表

前缀:ETB(E表示ENTITY)

名称:架构名.ETB_名词

举例:PUBLIC.ETB_LEAGUE

(2)关系表

前缀:RTB(R表示RELATION)

名称:架构名.RTB_实体英文单词缩写_实体英文单词缩写[_实体英文单词缩写…]

举例:PUBLIC.RTB_HOPA_LEAG(即CONFIG.RTB_HOMEPAGE_LEAGUE)

(3)事实表

前缀:FACT

名称:架构名.FACT_动宾结构

举例:CONFIG.FACT_ADD_USER

(4)报表

前缀:RPT(REPORT的简写)

名称:架构名.RPT_动宾结构

举例:CONFIG.RPT_ADD_USER

(5)字段

名称:词_词,全部大写

举例:FIRST_NAME

注意:

a)避免字段名中包含表名,如:EMPLOYEE_FIRST_NAME;

b)避免使用数字,如:COLUMN_1、COLUMN_2;

c)避免字段名包含数据类型,如:COLUMN_CHAR、COLUMN_NUMBER;

c)冗余字段可考虑加上前缀X或R,如:X_COL_NAME

(6)索引

前缀:IX,用两个字母是为了和约束一致起来,约束:PK、FK、UQ、CK、DF、NL;

名称:表名_列名1[_列名2…],为避免索引名太长,也可以使用表名_N,N为自然数;

举例:IX_CONFIG_FACT_ADD_USER_FACT_ID、IX_CONFIG_FACT_ADD_USER_1;

2.3.3、视图

前缀:V

名称:架构名.V_动宾结构

举例:CONFIG.V_QRY_USER

2.3.4、存储过程

前缀:P

名称:架构名.P_动宾结构

举例:CONFIG.P_ADD_USER

2.3.5、触发器

前缀:Tr

名称:架构名.Tr_动宾结构

举例:CONFIG.Tr_ADD_USER

2.3.6、函数

前缀:F

名称:架构名.F_动宾结构

举例:CONFIG.F_QRY_USER

其他未列举的数据库逻辑对象,可参考以上规则进行命名。

三、编码规范

3.1、外部参数

(1)对使用频繁、关键性的变量,请在定义时加上注释标明其含义;

(2)尽量少用单字母变量,禁止使用诸如i、j等作为变量名;

(3)注意小写字母l和数字1之间的区别使用;

(4)参数命名约定:@名称_名称,变量名称全部用小写,以示与表中大写字段区别,如:@user_name;

3.2、内部参数

同外部参数

3.3、关键字及系统内置对象

(1)关键字、系统函数、系统变量等,全部大写;

(2)数据类型使用小写,以与参数一致;

3.4、代码块

(1)使用TAB来缩进,设置TAB=4,并将TAB自动转换为空格;

(2)每行控制在列边界80以内;

(3)注释全部另起一行,不要和代码合在一行,单行注释采用--,,多行注释采用/*注释内容*/。另外注释内容尽量使用英文,中文注释在英文版的DBMS中可能会导致错误。

(4)多个Begin…End语句嵌套时采用如下方式

BEGIN/*1*/

...

BEGIN/*1.1*/

...

BEGIN/*1.1.1*/

...

END/*1.1.1*/

BEGIN/*1.1.2*/

...

END/*1.1.2*/

END/*1.1*/

END/*1*/

其中1表示第一级嵌套,1.1表示第二级嵌套,1.1.1表示第三级嵌套,1.1.2表示第三级的第二个嵌套…,一般不要超过三级嵌套。

(5)在保证缩进格式的前提下,可以通过对齐关键字来提高代码的可读性,如下:

SELECT*

FROMSCHEMA_NAME.TABLE_NAME

WHERECOL_NAME='XXX'

3.5、可编程对象

3.5.1、代码模板

推荐使用SQLSERVER开发工具中的模板来生成格式,再根据个人习惯进行适当修改即可。

3.5.2、全文注释

/******************************************************************

用途:

作者:

创建日期:

调用举例:

修订记录:

<修订日期><修订人>:修改内容简要说明

******************************************************************/

/******************************************************************

Function:

Author:

Createdate:

executee.g:

modifyrecord:

<date><whom>:description

******************************************************************/

3.5.3、返回值

存储过程中的返回值,分两种:RETURN和OUTPUT参数。

(1)RETURN值作为存储过程的执行状态,0为正常结束,非0为异常结束。

(2)使用OUTPUT参数返回错误编号和错误文本,以供弹出提示;

相关推荐