您的位置:首页 > 数据库

【数据库】数据库设计命名规范

2012-03-28 16:44 597 查看
一、字符规则

二、数据库命名规范

三、表命名规范

四、字段命名规范

五、外键命名规范

六、索引使用原则:

七、sql语句规范

八、其他设计技巧

一、字符规则

采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注释除外).

注意事项:

1)以上命名都不得超过30个字符的系统限制.变量名的长度限制为 29(不包括标识字符@).

2)数据对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.

3)小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突

4)保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了.

5)用尽量少的存储空间来存数一个字段的数据.

二、数据库命名规范

数据库名使用小写英文以及下划线组成.比如:

my_db

snepr

备份数据库名使用正式库名加上备份时间组成,如:

dbname_20070403

三、表命名规范

数据表名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.

相关应用的数据表使用同一前缀,如论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称一般不超过5字 比如:

info_user

system_destination

信息类采用:info_xxx

文件类采用:file_xxx

关联类采用:inter_xxx

备份数据表名使用正式表名加上备份时间组成,如:

info_user_20070403

system_destination_20070403

四、字段命名规范

字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀.

如 web_user表的字段:

user_id

user_name

如果表名过长,可以取表名的前5个字母。如果表名为多个单词组合,可以取前一个单词,外加后续其它单词的首字母作为字段名。

表与表之间的相关联字段要用统一名称,如 info_user表里面的 userId和group表里面的userId相对应;

业务流水号统一采用:表名_seq;

五、外键命名规范

外键名称为FK_表名

A_表名

B_关联字段名;

其中表名和关联字段名如果过长,可以取表名、关联字段名的前5个字母。

如果表名、关联字段为多个单词组合,可以取前一个单词,外加后续其它单词的

首字母作为字段名。

如:FK_user_token_user_phnum;

六、索引使用原则:

1)逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引.考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写.

2)大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上.

3)不要索引blob/text等字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间.

4)不要索引常用的小型表

不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了.对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间.

七、sql语句规范

所有sql关键词全部大写,比如 SELECT,UPDATE,FROM,ORDER,BY等,表名与字段名不需要大写如:

SELECT COUNT(*) FROM cdb_members WHERE userName='aeolus';

八、其他设计技巧

1)避免使用触发器触发器的功能通常可以用其他方式实现.在调试程序时触发器可能成为干扰.假如你确实需要采用触发器,你最好集中对它文档化.

2)避免使用存储过程

3)使用常用英语(或者其他任何语言)而不要使用拼音首字母缩写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: