(转)数据库设计中的命名规范
该篇博客是紧接着上篇博客的总结博客,上篇博客具体说了下工作总结需要包括的几项及总结的意义。这篇博客是对机房收费系统整个实现过程进行总结,主要分为三个阶段:第一,系统数据库的设计;第二,系统窗体的设计;第三,系统代码的编写。
一、系统数据库的设计
首先总结一个经验,第一次往往都是痛苦的,如果是做正确的事结果往往会使你发生蜕变,反之的话就会一发不可收拾,最终会发生蝴蝶效应,毁坏你的前程。数据库设计也是如此,机房收费系统的数据库是我第一次自己设计数据库结构,从最初的构想到最终设计完成用了不到一周的时间,在那七天内心情是倍感焦急。
1、设计之初
在动手设计前,要做的就是对系统的熟悉。大概用了不到一周的时间,分别从系统的结构和各模块功能进行了整体的分析,并利用导图软件画出了下面的系统结构图。

第一阶段的分析为后面的设计提供了很大的便利,有了对系统整体的把握于是可以安心的进行下步动手开始设计。
2、设计中
在进行设计时,借鉴了一些数据库设计的资料,对数据库表的命名规范进行了进一个步的学习,保证高效、便利的查询到表中想要的结果集。数据库中表名、报表名和查询名的命名是很重要的一个细节,直接影响了以后对数据库数据查询的高效性。但只对数据库表的每个字段进行命名是远远不够的,在设计时还要考虑每个字段的数据类型和保证数据完整性。
●表名、报表名和查询名的命名规范
编码规范是一个优秀程序员必备的素质,它包括变量、方法、类的命名,数据库中表、字段、对象的命名及数据类型等等很多方面。在此只总结数据库中类型的命名规范,为以后高效的编写查询记录打下基础。

表1 数据类型规范表
| 
 描述类型  | 
 说明  | 
 Oracle  | 
 SQL Server  | 
 Access  | 
| 
 int  | 
 整型  | 
 Integer  | 
 int  | 
 number  | 
| 
 number(a,b)  | 
 带小数点数字  | 
 numeric  | 
 numeric  | 
 number  | 
| 
 char(n)  | 
 定长字符串  | 
 char  | 
 char  | 
 text  | 
| 
 varchar(n)  | 
 变长字符串  | 
 varchar2  | 
 varchar  | 
 text  | 
| 
 date  | 
 日期/时间  | 
 DateTime  | 
 datetime  | 
 date/time  | 
| 
 binary(n)  | 
 二进制内容  | 
 long raw  | 
 image  | 
 OLE Object  | 
注:原则上只使用这6种基本类型,不推荐使用Bool类型,请用int代替。在进行编写程序代码时,程序中的变量类型一定要高于数据库中相应变量的类型,避免使数据类型在进行转换时丢失数据。
表2其他数据库对象命名规范
| 
 对象名  | 
 前缀  | 
 范例  | 
| 
 表(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)  | 
 无特殊要求  | 
3、总结
问题:
①数据库结构设计;
②各对象命名;
③数据类型定义;
解决办法:
①:没有做好,结构的设计很大部分参考了以前的数据库结构;
②:做的一般,查阅各资料对表名和字段名进行整齐的命名,提高了查询效率;
③:做的一般,大多用varchar类型,少数使用bigint类型,后期编写时也进行类型的更改;
如何更好:
①:在设计时要对系统更进一步的进行分析,画出系统功能图和结构流程图;
②:相同类型的对象统一命名原则;
③:数据类型对于存储数据的应用varchar,对于编写序号的要用bigint或int,在分不清该用何种类型时先用varchar。
                    
                
                
            
        
浙公网安备 33010602011771号