致力于技术进步

专注于编程艺术

博客园 首页 新随笔 联系 订阅 管理

SQL编程对于操作数据库人员来说无疑是一种提高效率的方法,但是有些刚入门数据库管理人员对于编程的规范视而不见,他们总是认为达到自己想要的结果就好,可是他们却忽略了性能以及优化的问题,今天小编和大家分享一些SQL命名规范希望对大家有所帮助。

 

.常见命名规则有四种样式:完全大写、完全小写、Pascal 大小写和 Camel 大小写。

1. Camel 大小写

标识符的首字母小写,每个后面连接的单词的首字母大写,其余字母小写的书写约定。对于缩写的双字母单词,要求它们出现在标识符首部时全部小写,否则全部大写。

例如:applicationException

      id

2. Pascal 大小写

组成标识符的每个单词的首字母大写,其余字母小写的书写约定。对于缩写的双字母单词,要求全部大写。

例如:ApplicationException

      ID

3. 匈牙利命名法

匈牙利命名法由匈牙利程序员发明,他在微软工作了多年,此命名法就是通过微软的各种产品和文档传出来。多数有经验的程序员,不管他们用的是哪门语言,都或多或少在使用它。

 

基本原则:变量名 = 属性 类型 对象描述

 

即一个变量名是由三部分信息组成,这样,程序员很容易理解变量的类型、用途,而且便于记忆。

 

说到命名规范,让我不禁想到代码的注释,之前从事开发工作的时候,由于注释不到位再加上编码不规范的问题,使团队的其他成员很难看懂,严重的造成项目延期。所以下面小编也要和大家说下注释规范,所谓没规矩不成方圆嘛!

 

.代码注释规范

1 代码头部注释

SQL代码块(SQL文件或存储过程)的头部进行注释,标注创建人(Author)、创始日期(Create date)、修改信息(Modify [n])

格式:

-- =============================================

-- Author:      <Author,,Name>

-- Create date: <Create Date,,>

-- Description: <Description,,>

-- Modify [n]: < Modifier,Date, Description >

-- =============================================

示例:

-- ================================================

-- Author:      Zhanghaifeng

-- Create date: 2006-12-25

-- Description: H2000报关单回执处理

-- Modify [1]: 郑佐, 2006-12-31, 简化逻辑判断流程

-- Modify [2]: 郑佐, 2007-01-20, 更新条件判断

-- ================================================

注:日期格式使用 yyyy-MM-ddModify [n] n代表修改序号,从1开始,每次修改加1

 

2. TRANSACTION注释

建议在每个事务的开头进行注释,说明该事务的功能。

-- < Modifier,Date, Description >

BEGIN TRANSACTION;

 

 

数据库命名规范

0. 字符集合

a-z A-Z 0-9 _ 63

1. 所有字条以小写字母开头,所有名词采用单数,所以前缀都要小写

如:userIduser_id

2. 数据库对象命名规范

数据库对象={,视图(查询),索引,关联,存储过程(参数查询),函数}

规则:对象名字由前缀和实际名字 组成,他们之间加下划线,不要在对象名的字符之间留空格,长度不超过30字符。

[对象名字][前缀]_[实际名字]

前缀:使用小写字母

              tb

视图           vi

索引           idx

关联           rl

存储过程     sp

函数           fn

实际名字:实际名字尽量描述实体的内容,由单词或单词组合,每个单词(第一个除外)的首字母大写,其他字母小写,不以数字和_开头,单词与单词间不用下划线。

[实际名字]=[小写字母开头的单词][大写字母开头的单词]...[大写字母开头的单词 

例如:userNamepassWord userRegisterTime

[单词]=[a-z|A-Z][a-z|A-Z|0-9|_]...[a-z|A-Z|0-9|_]

例子:tb_webUservi_userOrder

3. 数据库表命名规范

表名由 前缀(tb) _ 实际名字组成

[表名]=tb_[实际名字]

4. 字段命名规范

[字段名]=[表名简称]_[实际名字]

现在约定,[表名简称][表名][实际名字]部分 的各个单词首字母安顺序组合

如:tb_userInfomation应用此规则,其表名简称为uI

5. 视图命名规范

[视图]=vi_[实际名字]

6. 存储过程命名规范

[存储过程名]=sp_[实际名字]_[操作名字]

[操作名字]=[insert|delete|update|calculate|confirm]

例如:sp_userState_update

7. 索引命名规范

[索引]=idx[0-9]_[表名简写]_[实际名字]

例子:idx0_uInfo_age

注:[表名简写]不同于上面的[表名简称],它采用下面的字串简化规则。参见最后9

8. 关联命名规范

[关联]=rl_[表名简写]_[表名简写]

例子:rl_uInfo_msg

8.数据库设计文档规范

    表名:    tb_userInformation

    作者:    XXX

    日期:    2004-12-17

    版本:    1.0

    描述:    保存用户资料

    具体内容:(以表格形式)

 

9. 字串简化规则(方法):

 

  1. 按要求规定字串长度。判断字串是否满足要求,如果满足则简化完成,否则进入下一步
  2. 用单词简写替代字串的每个单词从而获得新字串,标准化做方法就是建立所谓单词简写库(下面有介绍)。判断字串是否满足要求,如果满足则简化完成,否则取消该步并进入下一步
  3. 采用字串的各个单词首字母构成新字串。判断字串是否满足要求,如果满足则简化完成,否则取消该步并进入下一步
  4. 进行人工干预

*** 单词简写库 ***

标准化地规定一些单词的简写,例如:

进行如下规定:

user → u

password → pass

address → addr

register → reg

login → li

logout → lo

time → t

date → d

information → info

project → prj

manager → man

这样userRegisterTime 就可以简写为 uRegT    userInformation 可以写成 uInfo

以上规则完全可以用程序实现:

这样的程序的功能和用法大概由下面的例子可以看出

sampleinput:

 userRegisterInformation

sampleoutput:

 uRegInfo

我们可以把该程序架设到一台服务器上,方便我们工作

上面全部的规则中,字段的 [实际名字] 部分是不会经过简化的,但大多时候这样会造成字段过长。为此,我们有如下

** 附加规则:当 [实际名字] 长度超过xeg x=8)个字符时,要对其应用 字串简化规则

如果采用了附加规则,在取表名的简称时,可能会出现如下情况:

表名:tb_projectManager根据附加规则,不符合要求

应用字串简化规则后:tb_prjMan

根据 [字段名]=[表名简称]_[实际名字],那么 [表名简称] 如何取得?

由于这个时候表名是tb_prjMan 它的简称即是 prjMan 的简称,这是就需要先将其还原为 projectManager 再取 project Manager 的首字母 pM, 这才是表名简称。由于pM 要作为前缀,所以还要将其改成小写 pm

0
0
(请您对文章做出评价)

 

posted on 2010-01-28 15:30  stephen&amp;#183;周  阅读(1579)  评论(0编辑  收藏  举报