c#学习无限

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

数据库设计命名规范

1.       数据库涉及字符规范 

采用26个英文字母和0-9这十个自然数,加上下划线_组成,共36个字符。不出现其他字符。鉴于大小写规则难记忆,而且有些情况下,数据库不区分大小写,统一采用小写字母。 

采用英文单词或英文短语(包括缩写)作为名称,不使用无意义的字符或汉语拼音。

名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。

2.       数据库对象命名规范

数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,绝对不要在对象名的字符之间留空格,长度不超过30。

使用单数(比如表名tb_customer,不要使用tb_customers)。

前缀:使用小写字母 

表        tb_<表的内容分类>_<表的内容>    

视图        vi

存储过程    sp

函数        fn

索引 idx_<表名>_<索引标识> 

主键 pk_<表名>_<主键标识> 

外键 fk_<表名>_<主表名>_<外键标识> 

序列   seq 

实际名字:实际名字尽量描述实体的内容,由单词或单词组合,每个单词以‘_’间隔,字母小写,不以数字开头。合法的对象名字类似如下。

表        tb_user_info    tb_message_detail

视图        vi_message_list

存储过程        sp_message_add

3.       数据库表设计规范 

表名由前缀和实际名字组成。tb_<表的内容分类>_<表的内容>。 

表的设计要符合3NF,然后,可以根据效率的需要,适当做一些冗余。 

前缀:使用小写字母tb,代表表。实际名字中,一个系统尽量采取同一单词,多个后面加_来连接区分。  

合法的表名类似如下。

tb_member

tb_member_info

tb_forum_board

tb_blog_comment1  

一些作为多对多连接的表,可以使用两个表的前缀作为表名:

如:用户表tb_user,用户分组表tb_group_info,这两个表建立多对多关系的表名为:tb_user_group_relation

4.       字段命名规范 

字段由表的简称,实际名字组组成。如果此字段关联另外的字段,那么加下划线_连接关联表字段的字段名。布尔型的字段,以一些助动词开头,更加直接生动:如,用户是否有留言has_message,用户是否通过检查is_checked等。字段名为英文短语、形容词+名词或助动词+

动词时态的形式表示,遵循“见名知意”的原则。

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

user_id

user_name 

user_reg_date

5.       视图命名规范 

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

vi_user

vi_user_info

6.       存储过程命名规范 

字段由前缀和实际名字加操作名字组成,中间用下划线连接。

前缀:使用小写字母sp,表示存储过程。 

操作名字:insert|delelte|update|caculate|confirm

例如: sp_user_insert  

存储过程注释尽量采用英文: 

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

\ * Name: sp_user_add 

* Purpose: Add a user to system 

* Parameters: strUserName the user’s login name 

*           strPwd the user’s password, encrypted by MD5

*           errno the error number, it’s a “output” param

*           errmsg the error message, it’s a “output” param

* Returns: the user’s ID, as a result set.

* Author: ahfu, ah_fu126@hotmail.com 

* Copyright: CopyRights By wance 2005.All Rights Reserved.

* Create At: 2009-03-18  Last Modify: 2009-03-19 *********************************************/  

7.       数据库设计文档规范 

所有数据库设计要写成文档,附有表关系图,可采用PowerDesigner设计; 表的具体描述文档以模块化形式表达。大致格式如下:

表名:tb_department

日期: 2008-12-17

版本: 1.0 

描述:保存用户资料

主键:dept_id 

索引:idx_dept_name, unique(唯一索引) 

外键:manager_id(对应tb_employee.employee_id)

具体内容样例

字段名

中文名

字段类型

可为空

默认值

备注

dept_id

 

int(4)

 

 

 

name

 

nvarchar(50)

 

 

 

manager_id

 

int(4)

 

0

 

address

 

varchar(100)

 

 

 

phone

 

nvarchar(50)

 

 

 

fax

 

nvarchar(50)

 

 

 

predept_id

 

int(4)

 

 

 

duty

 

varchar(100)

 

 

 

sort_number

 

int(4)

 

 

8.       sql语句规范 

所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,GROUP BY等。

9.       数据完整性规范 

1、为便于在程序的编码期查错,可以在设计数据库的时候尽可能多的加上约束(check)。如,整型的字段的取值范围等,常常为field>0。

2、同理,尽可能地在开发期间使用触发器来验证数据的完整性。

3、如果字段之间存在冗余,应该编写触发器来管理冗余的字段

3、在开发阶段保存完整的主键、外键和唯一索引的约束。 

4、原则:编码期间,数据完整性优先于性能。在保障系统正确运行的前提下尽可能的提高效率。 

5、数据库分开发期和运行期两个版本:开发期版本主要体现完整的约束,运行期版本体现效率的优化。

10.   数据库性能优化规范(运行期)

1、在运行阶段删除不必要的约束(check)。

2、尽量不要使用触发器

3、尽量保留主键约束 

4、适当删除外键,以提高性能 

5、在运行期间,通过分析系统的访问量,创建索引来优化性能 

6、分析每个表可能的数据增长量,定义自动拆分表规则。将大表进行拆分来提高性能。 7、预先考虑数据清理规则:在什么情况下删除数据库中的旧数据,以此来提高性能。

8、制定数据库备份和灾难恢复计划。 

9、为效率考虑,可以在系统测试阶段适当增加冗余字段,或者冗余表。 

10、分页的记录输出建议通过存储过程来实现,不能使用API游标来分页,这样可以提高分页的效率。

posted on 2013-05-16 11:40  网网由鱼  阅读(288)  评论(0编辑  收藏  举报