MSSQLServer命名及编码规范.docx
- 文档编号:30006309
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:10
- 大小:19.75KB
MSSQLServer命名及编码规范.docx
《MSSQLServer命名及编码规范.docx》由会员分享,可在线阅读,更多相关《MSSQLServer命名及编码规范.docx(10页珍藏版)》请在冰豆网上搜索。
MSSQLServer命名及编码规范
MSSQLServer命名及编码规范
文件类型:
项目管理(标准/规范/模板)
文件编号:
版本:
1.0
A版权声明
本文件版权属于XXXXX,保留所有权利。
本文件中包含的信息属于XXXXX的资产及机密,文件中的任何部分XX不得以任何形式复制(包括复印及以电子文本的形式传播)。
B版本历史
版本号
修订日期
作者
描述
1.0
2008-12-8
创建文档
C分发范围
本文档分发范围包括:
XXXXXX管理人员、开发人员、项目管理人员。
1编写目的
编写本文档的目的是在使用MSSQLServer数据库的过程中,使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
2适用范围
本规范适用于公司范围内所有以SQLSERVER2000/2005作为后台数据库的应用系统和项目开发工作。
3对象命名规范
3.1通用规则
Pascal规则
每个单词开头的字母大写(如:
TestCounter)。
Camel规则
除了第一个单词外的其他单词的开头字母大写.如:
testCounter。
Upper规则
仅用于被广泛认可的缩写命名(一般不超过四个字符,超过四个字符长度应该应用Pascal规则)。
如:
OLAP、PIN。
3.2数据库名
数据库名定义为系统名_模块名,如“crm_customer”表示CRM系统的customer处理模块数据库。
数据库名全部采用小写。
3.3数据库文件
数据文件命名采用数据库名+_+文件类型+[文件序号]+文件后缀,[文件序号]为1、2、3…9等数值,当数据库中某一文件类型的文件有多个时加上文件序号以区别。
只有一个时可不加。
文件后缀:
主数据文件为.mdf,其它数据文件为.ndf,日志文件为.ldf。
文件名全部采用小写。
比如系统名为“crm_customer”,则数据库数据文件命名为“crm_customer_data.mdf”,日志文件命名为“crm_customer_log.ldf”。
3.4表
表命名要遵循以下原则:
Ø直接使用表义名,不使用任何前缀。
Ø整个表名的长度不要超过30个字符。
Ø表义名需遵循[3.1]表述的规则,尽量以英文命名,也可使用汉语拼音的首字符命名。
表义名中汉语拼音均采用小写,且字符间不加分割符;单词命名的表义名采用名词性质的单词,各单词的首字符大写,其它字符小写。
多个单词间不加任何分割符,如果整个单词太长,则使用完整的第一音节或经过仔细选择的缩写词。
名词全部采用单数形式。
Ø表别名取表义名的前3个字符加最后一个字符。
Ø如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)。
Ø关联表命名为“Re_表A_表B”形式,Re是Relative的缩写,表A和表B均采用其表义名或缩写形式。
3.5属性(列或字段)
属性命名遵循以下原则:
Ø采用有意义的列名,尽量使用英文,或有实际含义的汉语拼音的首字符,且字符间不加任何分割符。
Ø如果字段为bool型,则使用"IsShow","IsValid","HasPassed","HasExamined","IgnoreCase"这种形式表示。
Ø如果字段位DateTime型,切且默认值是取系统时间,一律命名位:
CheckDate。
Ø属性名前不要加表名等作为前缀。
Ø属性后不加任何类型标识作为后缀。
Ø关联字段命名以“cd+_+关联表的表义名(或缩写)+_+字段名”进行
3.6主键
任何表都必须定义与业务无关的自增形式的键值,一律命名为ID。
表主键命名为“表名+ID”,如Customer表的主键命名为CustomerID。
3.7外键
外键名称为主表名+对应列名,如
在表Department中,其字段有:
ID,DepartmentName
在表UserInfo中,其字段有:
UserId,UserName,DepartmentsID
其中,DepartmentID为外键,参照Depertment表的ID字段。
3.8索引
索引的命名为:
“idx_表名(或缩写)+_+列名”。
其中多单词组成的属性列列名取前几个单词首字符,加末单词组成,如Customer表中字段LastName上的索引可命名为idx_Customer_LastName。
3.9Default标识
由“df+_+
3.10Rule标识
由“ru+_+
3.11自定义数据类型
自定义数据类型由“ud+_+<自定义数据类型标识>+_+<数据类型>”组成。
3.12触发器
ØAFTER型触发器
系统名+tr_+<表名>_+,其中i,u,d分别表示insert、update和delete。
ØINSTEADOF型触发器
系统名+ti_+<表名>+_+,其中i,u,d分别表示insert、update和delete。
3.13视图
视图命名由v_+表名+描述,如v_Customer_Top100。
3.14存储过程
存储过程命名由“usp+_+存储过程标识”组成。
存储过程标识要以实际含义的英语单词或以动宾的形式构成,并用下划线分割各个组成部分。
对于在某个表上进行操作的存储过程可以命名为“usp_表名_操作”方式,如在Customer表上进行插入操作的存储过程命名为usp_Customer_Insert。
3.15函数
函数命名由“ufn_+函数标识”组成。
3.16变量名
Ø变量命名采用Camel规则,使用有明确说明性的名字。
3.17角色
全部使用小写字符命名。
由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成如用电系统的查询角色:
yd_role_query。
3.18用户
全部使用小写字符命名。
由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成。
如用电系统的管理用户:
yd_user_sa。
3.19命名中的其它注意事项
Ø命名都不得超过30个字符,变量名长度不要超过29个字符(不包括标识字符@)。
Ø不要在对象名的字符之间留空格。
Ø要保证命名没有和保留词、数据库系统或者常用访问方法冲突。
4编码规范
4.1一般性注释
注释可以包含在批处理中。
在触发器、存储过程中包含描述性注释将会大大增加文本的可读性和可维护性。
Ø注释尽可能详细、全面。
Ø创建每一数据对象前,应具体描述该对象的功能和用途。
Ø传入参数的含义应该有所说明。
如果取值范围确定,也应该一并说明。
取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。
Ø注释语法包含两种情况:
单行注释、多行注释。
单行注释:
注释前有两个连字符(--),最后以行尾序列(CR-LF)结束。
一般,对变量、条件子句可以采用该类注释。
多行注释:
符号/*和*/之间的内容为注释内容。
对某项完整的操作建议使用该类注释。
Ø注释应当简洁,同时应描述清晰。
4.2函数头注释
编写函数文本--如视图、函数、触发器、存储过程以及其他数据对象时,必须为每个函数增加适当注释。
该注释以多行注释为主,主要结构如下:
/************************************************************************
*name:
--函数名
*function:
--函数功能
*input:
--输入参数
*output:
--输出参数
*author:
--作者
*CreatedDate:
--创建时间
*UpdateDate:
--函数更改信息(包括作者、时间、更改内容等)
*************************************************************************/
CREATEPROCEDUREdfsp_xxx
4.3大小写约定
SQL语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。
4.4代码缩进约定
Ø一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进。
Øwhere子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐。
4.5多表连接约定
多表连接时,使用表的别名来引用列。
表别名的命名参见[3.4]。
4.6常用SQL语句的编写规范
常用SQL语句的编写示例如下
4.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'')
)
4.6.2SELECT语句
SELECT<选择列列表>
[INTO<新表名>]
FROM<要选择的表名>
[WHERE<搜索条件>]
[GROUPBY<分组条件>]
[HAVING<搜索条件>]
[ORDERBY<排序规则>[ASC|DESC]]
禁止使用SELECT*
4.6.3INSERT语句
INSERTINTO<要插入的表名>
(<列1>,<列2>,..,<列n-1>,<列n>)
VALUES(<列1值>,<列2值>,..,<列n-1值>,<列n值>)
4.6.4UPDATE语句
UPDATE<要更新的表名>
SET<要更新的列>=<列值>
4.6.5DELETE语句
DELETEFROMauthors
WHEREau_lname=''McBadden''
4.7条件执行语句(IF)编写规范
条件执行语句IF…ELSE按以下格式编写
IF<条件表达式>
BEGIN
<命令行或程序块>
END
[ELSEIF<条件表达式>
BEGIN
<命令行或程序块>
END]
注:
<1>上式若BEGIN…END之间只包含单独一命令行,为使代码紧凑,BEGIN和END边界
也常省略
<2>IF…ELSE语句可以嵌套,为提高代码的可读性,嵌套层次不应多于5层。
当嵌套
层次太多时应考虑使用CASE语句。
4.7.1条件选择语句(CASE)编写规范
条件选择语句CASE…WHEN按以下格式编写
CASE<运算式>
WHEN<运算式>THEN<运算式>
…
WHEN<运算式>THEN<运算式>
[ELSE<运算式>]
END
或
CASE
WHEN<条件表达式>THEN<运算式>
…
WHEN<条件表达式>THEN<运算式>
[ELSE<运算式>]
END
4.7.2循环执行语句(WHILE)编写规范
循环执行语句WHILE…CONTINUE…BREAK按以下格式编写
WHILE<条件表达式>
BEGIN
<命令行或程序块>
[BREAK]
[CONTINUE]
…
<命令行或程序块>
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MSSQLServer 命名 编码 规范