日期:2014-05-16  浏览次数:20491 次

数据库命名规范
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. 字串简化规则(方法):
 
按要求规定字串长度。判断字串是否满足要求,如果满足则简化完成,否则进入下一步
用单词简写替代字串的每个单词从而获得新字串,标准化做方法就是建立所谓“单词简写库”(下面有介绍)。判断字串是否满足要求,如果满足则简化完成,否则取消该步并进入下一步
采用字串的各个单词首字母构成新字串。判断字串是否满足要求,如果满足则简化完成,否则取消该步并进入下一步
进行“人工干预”
*** 单词简写库 ***
标准化地规定一些单词的简写,例如:
进行如下规定:
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
我们可以把该程序架设到一台服务器上,方便我们工作
上面全部的规则中,字段的 [实际名字] 部分是不会经过简化的,但大多时候这样会造成字段过长。为此,我们有如下
** 附加规则:当 [实际名字] 长度超过x(eg x=8)个字符时,要对其应用 字串简化规则
如果采用了附加规则,在取表名的简称时,可能会出现如下情况:
表名:tb_projectManager根据附加规则,不符合要求
应用字串简化规则后:tb_prjMan
根据 [字段名]=[表名简称]_[实际名字],那么 [表名简称] 如何取得?
由于这个时候表名是tb_prjMan 它的简称即是 prjMan 的简称,这是就需要先将其还原为 projectManager 再取 project 和 Manager 的首字母 pM, 这才是表名简称。由于pM 要作为前缀,所以还要将其改成小写 pm