`
king_tt
  • 浏览: 2111563 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

数据库设计中的命名规范

 
阅读更多

此规范包括表名命名规范,索引命名规范,外键命名规范和字段名命名规范。
一、表名命名规则
1.数据库表的命名以是名词的复数形式且都为小写,如cities, categories, friends等等
2.如果表名由几个单词组成,则单词间用下划线(“_”)分割,如subscribed_pois,poi_categories等
3.表名尽量用全名
4.表名限制在30个字符内。当表的全名超过30字符时,可用缩写来减少表名的长度,如description –> desc;information –> info;address –> addr等


二、表字段名命名规则
1.字段名为小写
2.字段名为有意义的单词,或单词的缩写
3.如果字段由几个单词组成,则单词间用下划线(“_”)分割,如client_id,post_code等
4.字段名限制在30个字符内。当字段名超过30字符时,可用缩写来减少字段名的长度,如description –> desc;information –> info;address –> addr等


三、索引命名规则
1.索引须按照IDX_table_<column>_<column>,其中<table>是建立索引的表名,<column>是建立索引的字段名
2.索引名限制在30个字符内。当索引名超过30字符时,可用缩写来减少索引名的长度,如description –> desc;information –> info;address –> addr等


四、主键、外键命名规则
1.主键按照PK_<table>的规则命名,其中<table>为数据库表名
2.唯一键按照UK_<table>_<column>的规则命名,其中<table>为数据块表名,<column>为字段名
3.外键按照FK_<pppp>_<cccc>_<nn>的规则命名,其中<pppp>为父表名,<cccc>为子表名,<nn>为序列号


对象名

前缀

范例

表(table) tbl_/t_(或不加前缀) userinfo/t_user_info/tbl_user_info
视图(view) v_/v v_user_info/vuserinfo
序列(sequence) seq_ seq_user_info
簇(cluster) c_ c_user_info
触发器(trigger) trg_ trg_user_info
存储过程(procedure) sp_/p_ sp_user_info/p_user_info
函数(function) f_/fn_ fn_user_info/f_user_info
物化视图(materialized view) mv_ mv_user_info
包和包体(package & package body) pkg_ pkg_user_info
类和类体(type & type body) typ_ typ_user_info
主键(primary key) pk_ pk_user_info
外键(foreign key) fk_ fk_user_info_fieldname
唯一索引(unique index) uk_ uk_user_info_fieldname
普通索引(normal index) idx_ idx_user_info_fieldname
位图索引(bitmap index) bk_ bk_user_info_fieldname
同义词(synonym) 依据所分配的表所属模块/模式
数据库链接(database link) 无特殊要求

表格来自:http://www.uml.org.cn/sjjm/201305065.asp

数据库规范化设计的一些基本要求:
一、表中应该避免可为空的列。
虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库在处理的时候,需要进行特殊的处理。如此的话,就会增加数据库处理记录的复杂性。当表中有比较多的空字段时,在同等条件下,数据库处理的性能会降低许多。
解决方法:一是通过设置默认值的形式,来避免空字段的产生。二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这些列在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,建议另外建立一张副表,以保存这些列。
二、表不应该有重复的值或者列。
三、表中记录应该有一个唯一的标识符。
四、数据库对象要有统一的前缀名。
五、尽量只存储单一实体类型的数据。
六、尽量符合数据库的几个范式。

设计规范
所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、 binary、sql_variant、binary 、varbinary外,必须有默认值。字符型的默认值为一个空字符值串’’;数值型的默认值为数值0;逻辑型的默认值为数值0;
其中:系统中所有逻辑型中数值0表示为“假”;数值1表示为“真”。
datetime、smalldatetime类型的字段没有默认值,必须为NULL。
当字段定义为字符串形时建议使用varchar而不用nvarchar。


字段的描述
数据库中每个字段的描述(Description)如下:
1.表内的每一个值只能被表达一次
2.表内的每一行都应当被唯一的标示
3.表内不应该存储依赖于其他键的非键信息
4.如果字段事实上是与其它表的关键字相关联而未设计为外键引用,需建索引。
5.如果字段与其它表的字段相关联,需建索引。

SQL 开发代码规范
我们规定sql语句编码的时候程序员需要遵循以下规范:
a.所有的关键字的所有字母必须大写。如果一个常量由几个词组成,我们规定两个词之间使用下划线(_)来划分。表名、列名、视图名或它们的别名必须和它们的定义保持一致。
b.注释必须要规范。

其他设计技巧
1)避免使用触发器
触发器的功能通常可以用其他方式实现。在调试程序时触发器可能成为干扰。假如你确实需要采用触发器,你最好集中对它文档化。
2)使用常用英语(或者其他任何语言)而不要使用编码在创建下拉菜单、列表、报表时最好按照英语名排序。假如需要编码,可以在编码旁附上用户知道的英语。
3)保存常用信息。让一个表专门存放一般数据库信息非常有用。在这个表里存放数据库当前版本、最近检查/修复、关联设计文档的名称、客户等信息。这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用。
4)包含版本机制。在数据库中引入版本控制机制来确定使用中的数据库的版本。时间一长,用户的需求总是会改变的。最终可能会要求修改数据库结构。把版本信息直接存放到数据库中更为方便。
5) 编制文档。对所有的快捷方式、命名规范、限制和函数都要编制文档。采用给表、列、触发器等加注释的数据库工具。对开发、支持和跟踪修改非常有用。对数据库文档化,或者在数据库自身的内部或者单独建立文档。这样,当过了一年多时间后再回过头来做第2 个版本,犯错的机会将大大减少。
6)测试、测试、反复测试。建立或者修订数据库之后,必须用用户新输入的数据测试数据字段。最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求。测试需要在把新数据库投入实际服务之前完成。
7)检查设计。在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库。换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。

来自:http://www.db2china.net/club/thread-18535-1-1.html
分享到:
评论

相关推荐

    数据库设计命名规范.docx

    注:在MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字节 建议在大 数表中含有如下字段 数据库设计命名规范全文共6页,当前为第5页。...

    数据库命名及设计规范

    *Name: 数据库命名及设计规范 *RCSfile: 命名及设计规范-数据库.txt *Revision: 0.01Beta *Author: *Released: 2005-01-19 11:25:10 *Description: 数据库命名及设计规范 *Contact: *=======================...

    数据库设计商业数据库对象命名规范

    数据库设计商业数据库对象命名规范,对数据库中对象的命名进行规范

    数据库设计方案及命名规范

    本文介绍了数据库的设计方法及命名规范。对字段的命名方式也进行了规范。

    数据库设计命名规范

    数据库设计命名规范,表,视图,函数,存储过程等命名

    数据库设计规范-编码规范.docx

    1 目的 为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。 2 范围 本规范适用于全体开发人员,作用于软件项目开发的数据库设计、维护阶段。 3 ...

    数据库设计过程中的命名规范

    该文档总结了数据库设计过程中的一系列命名规范,包括数据库中表、视图、存储过程、函数、触发器、索引等。希望能对大家有帮助!

    mysql数据库设计命名规范

    小型数据库下命名的规范,叫你如何给数据库表和字段命名

    2数据库设计规范.doc

    保密级别: 绝密 机密 秘密 内部公开 数据库设计规范 变更记录 "版本号 "修改点说明 "变更日期 "变更人 "审批人 " "V1.0 "创建 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ...

    MYSQL数据库命名及设计规范

    MYSQL数据库命名及设计规范真正的权威

    数据库表设计命名规范.doc

    数据库库表设计命名规范 引言 目前航运系统产品中的部分数据库表命名上存在不规范的情形,为进一步规范系统开 发过程中数据表、字段等实体的命名,特制定本规范要求在后续新增表、字段时,需要 严格按照本规范执行。...

    数据库对象命名规范

    本文档描述了数据库设计规则、数据库对象命名规范,SQL语句规则,软件开发项目中的必备文档,免得每次都要自己重新写

    SQL数据库设计命名规范.pdf

    数据库设计规范 数据库中不论是表名还是字段名,都一律用英文,不准出现其它语言; 为了不增加数据库当中的表名的长度, 一般不允许出现如 Form 或者 Table 的字样, 如:记录表:应为 Record,而不是 RecordTable ...

    台湾弘欣数据库设计命名法则与规范

    台湾弘欣数据库设计命名法则与规范包含弘欣数据库命名规范(V1.0).pdf和弘欣数据库设计命名法则(V1.0).pdf可以参考参考!

    数据库设计命名规范.pdf

    数据库设计命名规范.pdf

    数据库设计规范-命名规范.docx

    数据库设计规范-命名规范全文共4页,当前为第1页。数据库设计规范-命名规范全文共4页,当前为第1页。数据库设计规范(命名规范) 数据库设计规范-命名规范全文共4页,当前为第1页。 数据库设计规范-命名规范全文共4...

    7数据库设计规范.doc

    4 3.2、数据库设计原则 5 3.3、数据库表空间设计原则 9 4、数据库逻辑设计原则 9 4.1、命名规范 9 4.2、命名 11 4.3、数据类型 12 4.4、设计 13 4.5、SQL编写 15 5、设计工具 17 附录 17 SGA 17 3NF 19 1、目的 定义...

    8数据库设计规范.doc

    保密级别: 绝密 机密 秘密 内部公开 数据库设计规范 变更记录 "版本号 "修改点说明 "变更日期 "变更人 "审批人 " "V1.0 "创建 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ...

    数据库设计规范

    数据库设计规范,阿里云数据库设计规范!【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint ( 1表示是,0表示否)。 说明:任何字段如果为非负数,必须是 unsigned。 正例:...

    数据库设计方法及命名规范.doc

    数据库设计方法及命名规范

Global site tag (gtag.js) - Google Analytics