数据库命名及设计规范

/**
*=================================================
*Name:        数据库命名及设计规范
*RCSfile:    命名及设计规范-数据库.txt
*Revision:    0.01Beta
*Author:    
*Released:    2005-01-19 11:25:10
*Description:    数据库命名及设计规范
*Contact:    
*==================================================
*/
1.数据库涉及字符规范
我们约定:采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线_组成,共63个字符。不能出现其他字符(注释除外)。
2.数据库对象命名规范

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

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

我们约定,数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。
前缀:使用小写字母

tb

视图

vi

存储过程

sp

函数

fn

索引

idx

关联

rl

实际名字:实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。如

表        User_Info
视图        User_List
存储过程    User_Delete

因此,合法的对象名字类似如下。

表        tb_User_Info    tb_Message_Detail
视图        vi_Message_List
存储过程        sp_Message_Add

3.数据库表命名规范

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

我们约定,表名由前缀和实际名字组成。
前缀:使用小写字母tb,代表表。实际名字中,一个系统尽量采取同一单词,多个后面加_来连接区分。 因此,合法的表名类似如下。

tb_Member
tb_Member_Info
tb_Forum_Board
tb_Blog_Comment1

4.字段命名规范

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

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

我们约定,字段由表的简称,实际名字组组成。如果此字段关联另外的字段,那么加下划线_连接关联表字段的字段名。
因此,合法的字段名类似如下。

UserID_MeID
UserName
UserRegDate           

5.视图命名规范

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

我们约定,字段由前缀和实际名字组成,中间用下划线连接。
前缀:使用小写字母vi,表示视图。因此,合法的视图名类似如下。

vi_User
vi_UserInfo

6.存储过程命名规范

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

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

我们约定,字段由前缀和实际名字加操作名字组成,中间用下划线连接。
前缀:使用小写字母sp,表示存储过程。
操作名字:Insert|Delelte|Update|Caculate|Confirm
例如:

sp_User_Insert

7. 索引命名规范

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

例子:idx0_uInfo_age

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

8. 关联命名规范

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

例子:rl_uInfo_msg

7.数据库设计文档规范
所有数据库设计要写成文档,文档以模块化形式表达。大致格式如下:

'-------------------------------------------
'    表名:    tbUser_Info
'    作者:
'    日期:    2004-12-17
'    版本:    1.0
'    描述: 保存用户资料
'    具体内容:
'    UserId        int,自动增量 用户代码
'    UserName    char(12)        用户名字
'    ......
'--------------------------------------------

8.sql语句规范
我们约定,所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,BY等。

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

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

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

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

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

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

应用字串简化规则后:tb_prjMan

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值