数据库编程规范.docx

上传人:b****3 文档编号:2293360 上传时间:2022-10-28 格式:DOCX 页数:12 大小:26.57KB
下载 相关 举报
数据库编程规范.docx_第1页
第1页 / 共12页
数据库编程规范.docx_第2页
第2页 / 共12页
数据库编程规范.docx_第3页
第3页 / 共12页
数据库编程规范.docx_第4页
第4页 / 共12页
数据库编程规范.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据库编程规范.docx

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

数据库编程规范.docx

数据库编程规范

数据库编程规范

 

 

 

版本历史

状态

版本

作者

参与人

起止日期

备注

草稿

2011-4-26~2011-4-28

 

 

第一部分概述

1.1文档目的

本文档的编写目的是为了项目开发人员在使用数据库的过程中,使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。

遵守数据库编码规范是提高数据库性能最基本的也是最重要的途径。

1.2文档范围

本文档适用于合肥公司范围内所有数据库应用系统和项目开发工作。

1.3术语定义

缩写、术语

解释

Database或DB

数据库系统

ORG

合肥

1.4参考文献

《MicrosoftSQLServer2005联机丛书》

《T-SQL编码标准》

《编写可移植的Transact-SQL代码》

 

第二部分对象命名规则

2

2.1通用规则

Pascal规则

每个单词的首字母大写。

如:

TestEmployee。

Camel规则

除了第一个单词外的其他单词的首字母大写。

如:

testEmployee。

Upper规则

仅用于被广泛认可的缩写命名。

一般不超过四个字符,超过四个字符长度应该使用Pascal规则,如:

OLAP、PIN。

2.2数据库

数据库名定义为系统名_模块名,如”crm_customer”,表示CRM系统的Customer模块数据库。

数据库名全部采用小写。

2.3数据库文件

数据文件命名采用数据库名+_+文件类型+[文件序号]+文件后缀,[文件序号]为1、2、…、9等数值,当数据库中某一文件类型的文件有多个时加上文件序号加以区别。

只有一个时可以不加。

文件后缀:

主数据文件为.mdf,其它数据文件为.ndf,日志文件为.ldf。

文件名全部采用小写。

比如系统名为“crm_customer”,则数据库数据文件命名为“”,日志文件命名为“”。

2.4表

表命名要遵循以下原则:

Ø规范要求使用表义名,不使用任何前缀。

但考虑到有可能存在表重名的问题,建议公司的项目数据库表命名采用“ORG_”作为前缀。

以示区分。

Ø整个表名的长度不要超过30个字符。

Ø表义名尽量以英文命名,也可使用汉语拼音的首字符命名。

表义名中汉语拼音均采用小写,且字符间不加分割符;单词命名的表义名采用名词性质的单词,各单词的首字符大写,其它字符小写。

多个单词间不加任何分割符,如果整个单词太长,则使用完整的第一音节或经过仔细选择的缩写词。

名词全部采用单数形式。

Ø表别名取表义名(不含前缀)的前3个字符加最后一个字符。

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

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

2.5属性(列或字段)

属性命名遵循以下原则:

Ø采用有意义的列名,尽量使用英文,或有实际含义的汉语拼音的首字符,且字符间不加任何分割符。

Ø如果字段为bool型,则使用"IsShow","IsValid","HasPassed","HasExamined","IgnoreCase"这种形式表示。

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

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

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

2.6主键

Ø任何表都必须定义与业务无关的自增形式的键值,一律命名为ID。

Ø表主键命名为“表名+ID”,如Customer表的主键命名为CustomerID。

2.7外键

Ø外键名称为主表名+对应列名,如:

Ø在表Department中,其字段有:

ID,DepartmentName

Ø在表UserInfo中,其字段有:

UserId,UserName,DepartmentsID

Ø其中,DepartmentID为外键,参照Depertment表的ID字段。

2.8索引

Ø索引的命名为:

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

Ø其中多单词组成的属性列列名取前几个单词首字符,加末单词组成,如Customer表中字段LastName上的索引可命名为idx_Customer_LastName。

2.9Default标识

由“df+_+”组成。

2.10Rule标识

由“ru+_+”组成。

2.11自定义数据类型

自定义数据类型由“ud+_+<自定义数据类型标识>+_+<数据类型>”组成。

2.12触发器

ØAFTER型触发器

系统名+tr_+<表名>_+,其中i,u,d分别表示insert、update和delete。

ØINSTEADOF型触发器系统名+ti_+<表名>+_+,其中i,u,d分别表示insert、update和delete。

2.13视图

视图命名由v_+表名+描述,如v_Customer_Top100。

2.14存储过程

Ø存储过程命名由“usp+_+存储过程标识”组成。

Ø存储过程标识要以实际含义的英语单词或以动宾的形式构成,并用下划线分割各个组成部分。

对于在某个表上进行操作的存储过程可以命名为“usp_表名_操作”方式,如在Customer表上进行插入操作的存储过程命名为usp_Customer_Insert。

2.15函数

函数命名由“ufn_+函数标识”组成。

2.16变量名

变量命名采用Camel规则,使用有明确说明性的名字。

2.17角色

Ø全部使用小写字符命名。

Ø由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成如用电系统的查询角色:

yd_role_query。

2.18用户

Ø全部使用小写字符命名。

Ø由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成。

如用电系统的管理用户:

yd_user_sa。

2.19命名中的其它注意事项

命名都不得超过30个字符,变量名长度不要超过29个字符(不包括标识字符@)。

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

要保证命名没有和保留词、数据库系统或者常用访问方法冲突。

 

第三部分编程规范

3

3.1一般性注释

Ø注释可以包含在批处理中。

在触发器、存储过程中包含描述性注释将会大大增加文本的可读性和可维护性。

Ø注释尽可能详细、全面。

Ø创建每一数据对象前,应具体描述该对象的功能和用途。

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

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

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

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

单行注释、多行注释。

Ø单行注释:

注释前有两个连字符(--),最后以行尾序列(CR-LF)结束。

一般,对变量、条件子句可以采用该类注释。

Ø多行注释:

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

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

注释应当简洁,同时应描述清晰。

3.2函数头注释

编写函数文本--如视图、函数、触发器、存储过程以及其他数据对象时,必须为每个函数增加适当注释。

该注释以多行注释为主,主要结构如下:

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

*name:

--函数名

*function:

--函数功能

*input:

--输入参数

*output:

--输出参数

*author:

--作者

*CreatedDate:

--创建时间

*UpdateDate:

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

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

CREATEPROCEDUREdfsp_xxx

3.3大小写约定

SQL语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。

3.4代码缩进约定

Ø一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进。

Øwhere子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐。

3.5多表连接约定

多表连接时,使用表的别名来引用列。

表别名的命名参见。

3.6常用SQL语句的编写规范

3.6.1CREATE语句

CREATETABLEpublishers

pub_idchar(4)NOTNULL--标识

CONSTRAINTUPKCL_pubindPRIMARYKEYCLUSTERED

CHECK(pub_idIN(''1389'',''0736'',''0877'',''1622'',''1756'')

ORpub_idLIKE''99[0-9][0-9]''),

pub_namevarchar(40)NULL,--名称

cityvarchar(20)NULL,--城市

statechar

(2)NULL,--州

countryvarchar(30)NULL--国家

DEFAULT(''USA'')

3.6.2SELECT语句

SELECT<选择列列表>

[INTO<新表名>]

FROM<要选择的表名>

[WHERE<搜索条件>]

[GROUPBY<分组条件>]

[HAVING<搜索条件>]

[ORDERBY<排序规则>[ASC|DESC]]

禁止使用SELECT*

3.6.3INSERT语句

INSERTINTO<要插入的表名>

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

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

3.6.4UPDATE语句

UPDATE<要更新的表名>

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

3.6.5DELETE语句

DELETEFROMauthors

WHEREau_lname=''McBadden''

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

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

IF<条件表达式>

BEGIN

<命令行或程序块>

END

[ELSEIF<条件表达式>

BEGIN

<命令行或程序块>

END]

注:

<1>上式若BEGIN…END之间只包含单独一命令行,为使代码紧凑,BEGIN和END边界

也常省略

<2>IF…ELSE语句可以嵌套,为提高代码的可读性,嵌套层次不应多于5层。

当嵌套

层次太多时应考虑使用CASE语句。

3.7.1条件选择语句(CASE)编写规范

条件选择语句CASE…WHEN按以下格式编写

CASE<运算式>

WHEN<运算式>THEN<运算式>

WHEN<运算式>THEN<运算式>

[ELSE<运算式>]

END

CASE

WHEN<条件表达式>THEN<运算式>

WHEN<条件表达式>THEN<运算式>

[ELSE<运算式>]

END

3.7.2循环执行语句(WHILE)编写规范

循环执行语句WHILE…CONTINUE…BREAK按以下格式编写

WHILE<条件表达式>

BEGIN

<命令行或程序块>

[BREAK]

[CONTI

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

当前位置:首页 > 解决方案 > 学习计划

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

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