数据库命名规范.docx

上传人:b****5 文档编号:6635310 上传时间:2023-01-08 格式:DOCX 页数:11 大小:20.38KB
下载 相关 举报
数据库命名规范.docx_第1页
第1页 / 共11页
数据库命名规范.docx_第2页
第2页 / 共11页
数据库命名规范.docx_第3页
第3页 / 共11页
数据库命名规范.docx_第4页
第4页 / 共11页
数据库命名规范.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据库命名规范.docx

《数据库命名规范.docx》由会员分享,可在线阅读,更多相关《数据库命名规范.docx(11页珍藏版)》请在冰豆网上搜索。

数据库命名规范.docx

数据库命名规范

数据库命名规范

1、编写目的

使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。

2、适用范围

本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。

3、对象命名规范

3.1数据库和SID

数据库名定义为系统名+模块名

★全局数据库名和例程SID名要求一致

★因SID名只能包含字符和数字,所以全局数据库名和SID名中不能含有“_”等字符

3.2表相关

3.2.1表空间

★面向用户的专用数据表空间以用户名+_+data命名,如Aud用户专用数据表空间可命名为Aud_data

★面向应用的表空间:

应用名+_+模块名+_data(数据空间)

应用名+_+模块名+_idx(索引空间)

应用名+_+模块名+_tmp(临时空间)

3.2.2表空间文件

表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如dms_vorder_data01等

3.2.3表

表命名要遵循以下原则:

★一般表采用“系统名+t_+模块名+_+表义名”格式构成(模块名一般不超过10位)

★若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成

★模块名或表义名均以其英文命名,命名过程中适当截取,最多不超过50个字符;

★表别名命名规则:

取表义名的前3个字符加最后一个字符。

如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)

★临时表采用“系统名+t_tmp_+表义名”格式构成

★表的命名如

∙ dmst_vorder_declare:

系统名(经销商管理系统dms)+t_+模块名(整车订单vorder)+_+表义名(申报declare)

★关联表命名为Re_表A_表B,Re是Relative的缩写,表A和表B均采用其表义名或缩写形式。

3.2.4属性(列或字段)

属性命名遵循以下原则:

★采用有意义的列名,为实际含义的英文截取,且字符间可有下划线

★属性名前不要加表名等作为前缀

★属性后不加任何类型标识作为后缀

★关联字段命名以“cd+_+关联表的表义名(或缩写)+_+字段名”进行

所有表必须有以下字段:

字段名

中文

字段类型

备注

Id

Id号

Number

表主键,对应sequence为seq_+表名

factorycode

工厂编码

Varchar2(50)

createtime

创建时间

Date

默认系统时间

createby

创建人

Varchar2(100)

updatedtime

修改时间

Date

updatedby

修改人

Varchar2(100)

Lockedflag

锁定标记

Varchar2

(2)

默认为0,1为锁定,0为解锁

Lockedtime

锁定时间

Date

Lockedby

锁定人

Varchar2(100)

Deleteflag

删除标记

Varchar2

(2)

默认为0,1为删除,0为正常可用

注意:

在用POWERDESIGNER进行设计时,注意将每个字段的备注都填上(内容可为其中文含义及特殊说明,以便数据库文档的生成及后续开发的人员的理解)

3.2.5主键

★任何表都必须定义主键

★表主键命名为:

“pk+_+表名(或缩写)+_+主键标识

3.2.6外键

表外键命名为:

“fk+_+表名(或缩写)+_主表名(或缩写)+_+主键标识

3.2.7CHECK约束

CHECK约束命名为:

“chk+_+CHECK约束的列名(或缩写)”

3.2.8UNIQUE约束

UNIQUE约束命名为:

“unq+_+UNIQUE约束的列名(或缩写)”

3.2.9索引

索引的命名为:

“idx_+表名(或缩写)+_+列名”。

其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成如yd_kh表khid上的index:

idx_yd_kh_khid

3.2.10触发器

★AFTER型触发器

系统名+tr_+<表名>_+aft+[_row]

★BEFORE型触发器

系统名+tr_+<表名>_+bef_+[_row]

★INSTEADOF型触发器

系统名+ti_+<表名>+_++[_row]

★各种类型的触发器中

i,u,d分别表示insert、update和delete行级触发器,后加_row标识,语句级触发器不加,如yddftr_CSH_i_row

3.2.11簇

簇以簇中要存储的各个表(或表别名)及表间加and的组成命名,即表“A+And+表B…”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN

3.3视图

视图命名以系统名+v_+模块名作为前缀,其他命名规则和表的命名类似

3.4序列

序列命名以seq_+含义名(一般为表名)组成

3.5同义词

同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀

3.6存储对象相关

3.6.1存储过程

存储过程命名由“系统名+sp_+存储过程标识(缩写)”组成存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。

如增加代理商的帐户的存储过程为“dfsp_ZJDLSZH”。

3.6.2函数

函数命名由“系统名+fn_+函数标识”组成

3.6.3包

包命名由“系统名+pkg_+包标识”组成

3.6.4函数文本中的变量

采用下列格式命名:

★参数变量命名采用“i(o或io)+_+名称”形式,前缀i或o表输入还是输出参数

★过程变量命名采用“l_+名称”形式

★全局包变量命名采用“g_+名称”形式

★游标变量命名采用cur_“名称”形式

★常量型变量命名采用“c+_+名称”形式

★变量名采用小写,若属于词组形式,用下划线分隔每个单词

★变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化

3.7用户及角色

★用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成

★角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成

3.8数据库链接

★数据库链接命名由“远程服务器名+_+数据库名+_+link”组成

★若远程服务器名和数据库名一致,上式“_+数据库名”部分省去

3.9命名中的其它注意事项

★命名都不得超过50个字符。

★不要在对象名的字符之间留空格

★小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突

 

4、编码规范

4.1一般性注释

4.1.1注释尽可能简洁、详细而全面

4.1.2创建每一数据库对象时都要加上COMMENTON注释

以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENTON注释,以说明该列和/或列取值的含义。

如:

XX表中有CZZT列属性为NUMBER(10,0)可加COMMENTON注释如下COMMENTONCOLUMNXX.CZZTIS'0=正常,1=等待,2=超时,3=登出'

4.1.3注释语法包含两种情况:

单行注释、多行注释

单行注释:

注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。

多行注释:

符号/*和*/之间的内容为注释内容。

对某项完整的操作建议使用该类注释。

4.2函数文本注释

4.2.1在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释

 

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

*name:

--函数名

*function:

--函数功能

*input:

--输入参数

*output:

--输出参数

*author:

--作者

*CreateDate:

--创建时间

*ChangeHistory:

--函数更改历史(包括作者、时间、更改内容等)

2010-04-15李成明修改原因和修改内容

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

CREATE[ORREPLACE]PROCEDUREdfsp_xxx

4.2.2传入参数的含义应该有所说明

如果取值范围确定,也应该一并说明。

取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。

4.2.3在每一个变量声明的旁边添加注释。

说明该变量要用作什么

通常,简单使用单行注释就行了,例如l_sfzhCHAR(11)--身份证号码

4.2.4在块的每个主要部分之前添加注释

在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述

4.2.5在块和过程的开头注释中还可以增加要访问的数据库等信息

4.3常用SQL语句的编写规范

4.3.1CREATE语句

 

CREATETABLEdft_dksz(

YHBSVARCHAR2(20)NOTNULL,

ZHGXDATE,

DKKHDVARCHAR2(24),

CONSTRAINTpk_dksz_yhbsPRIMARYKEY(YHBS)

4.3.2SELECT语句

查询语句采用以下原则编写(可最大化重用共享池中的SQL语句,提高应用程序性能):

★将SELECT语句分为5部分:

(1)由SELECT开头,后跟一个显示查询结果的列表;

(2)由FROM开头,后跟一个或多个获取数据所涉及的表;

(3)由WHERE开头,后跟一个或多个确定所需值的条件;

(4)由GROUPBY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;

(5)由ORDERBY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。

★每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如

 

SELECTcol1,col2,col3

FROMtable1

WHEREcol1>col2

GROUPBYcol1,col2

ORDERBYcol1;

★关键字用大写,列名和表名采用小写

★语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行

★当语句的同一部分要延续到下一行时,按下列格式排列:

 

SELECTcol1,col2,col3,col4,col5,col6,

col7,col8,col9,col10

 

★将语句中WHERE和AND部分格式化,书写布局类似于

 

WHERE

AND

AND

★当语句中出现括号时,括号的两边不留空格

★在SQL语句使用运算符时,操作两边应各留一个空格,如

 

WHEREX=Y

ANDA=B

ANDC=D

4.3.3INSERT语句

 

INSERTINTO<要插入的表名>

(<列1>,<列2>,..,<列n-1>,<列n>)

VALUES(<列1值>,<列2值>,..,<列n-1值>,<列n值>)

4.3.4UPDATE语句

 

UPDATE<要更新的表名>

SET<要更新的列>=<列值>

4.3.5DELETE语句

 

DELETEFROMtable1

WHEREcol1='?

?

?

'

4.4条件执行语句(IF)编写规范

条件执行语句IF…ELSE按以下格式编写

 

IF<条件表达式>

THEN

<一条或多条语句>

[ELSE(或ELSIF<条件表达式>)

THEN

<一条或多条语句>

ENDIF;

 

注:

(1)在IF…THEN和ELSE(或ELSIF)及ELSE…THEN和ENDIF间可包含一条或多条PL/SQL

语句,而不需要加BEGIN和END

(2)IF…ELSE…ENDIF语句可以嵌套

(3)注意ELSIF的写法

4.5循环语句编写规范

4.5.1简单循环语句

LOOP

<零条或多条语句>

EXITWHEN<条件表达式>

<零条或多条语句>

ENDLOOP;

 

4.5.2FOR循环语句

FOR变量IN[变量取值范围]

LOOP

<一条或多条语句>

ENDLOOP;

 

4.5.3WHILE循环语句

WHILE<条件表达式>

LOOP

<一条或多条语句>

ENDLOOP;

 

4.6函数文本(存储过程、函数和包等)

★对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS异常情态处理器,以提高程序的自检能力,格式如下:

BEGIN

EXCEPTION

WHENexcep—name1THEN

WHENexcep—name2THEN

WHENOTHERSTHEN

END;

 

★对于子程序、触发器、包等带名的程序块,要使用结束标识,如

CREATEORREPLACEPROCEDUREXXXsp_XXXIS

BEGIN

ENDXXXsp_XXX;

/*此处的过程名XXXsp_XXX是可选的,规范要求写上,与块开始的CREATE相对应*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1