数据库设计的体会

来源:互联网 发布:雨季网络 编辑:程序博客网 时间:2024/04/29 02:16

PowerDesigner设计数据库规范

----初稿 by 罗军

需求:

虽然目前我们的数据库设计模式能够满足开发要求,也节省了开发时间,但是这样的设计会对以后工程项目的维护、改版造成成本上的增加。数据库表的字段在修改上将对主程序造成影响;另外对于开发和维护人员来说,字段的编码也需要规范化,这样可以统一字段编码,让维护人员一看就懂,增添的字段对以后接手项目的人员来说则很容易上手。

针对上述问题,我建议数据开发需要定义一套简明扼要的规范。规范中包括三个部分:一是编码的规范;二是字段类型长度的定义;三是表设计的特殊说明。

 

设计:

数据库开发流程先知:PowerDesigner中,我们主要设计物理数据模型(PDM文件),这时需要定义一个工程项目的数据字段域,定义字段域有一个好处就是以后设计数据表时,字段的类型可以选择用域中定义好的类型,更改了域的类型信息,表中与域引用相关的字段信息也相应改变,这样方便修改字段,也统一了字段类型和长度。

定义好域之后,就可以设计数据表以及字段了。设计完表,可以选择导出的数据库类型,并生成建数据和建表的sql,再通过数据库连接工具执行sql语句,一个工程项目的数据库就建立好了。以后只要有数据库的修改要求,则重新生成sql语句并执行之即可。注意:重新执行sql之前需要确定是否保留原表的数据,若需要保留则只能通过alert语句来修改,否则原表的数据将被冲洗掉。

 

I 数据库设计流程图

如图(图I)所示为数据库设计流程图,如果有修改内容,我们只需要重新执行箭头2所指的三个步骤就行。

以下说明数据库设计过程中的一些要求。

1)  编码规范

编码主要是要注意编码的前后缀,以便看到编码则知道是什么类型。

A.      主键pk_  [字符串or长整型]     例如:pk_company

B.      外键fk_  [字符串or长整型]      例如:fk_employee

C.      字符串 v                       例如:vdetail

D.      字符型 c                       例如:ccolor

E.       时间   d                       例如:ddatetime

F.       逻辑   b                       例如:bisdeleted

G.      整型   i                       例如:itype

H.      数字型(浮点行) n             例如:nprice

I.        文本型 t                       例如:tdescription

J.        对象类型 o                     例如:opicture

给各个表与字段编码时,尽量保持编码的长度在20个字符以内,编码要求有一定意义,并且易懂。

2)  字段类型长度定义

主键、外键如果是字符串行的话,建议用20个字符的长度。字符串的长度一般定义203050100256512102420484096,超过4096个字符可以建议用文本类型来定义。定义字段的长度主要用于定义域的字段长度,从而规范表字段的类型及长度。

3)  表设计的特殊说明

一般,表中的记录如果是假删除的话,则每个表需要统一的删除字段,另外,时间字段一般每一个表也要求出现,这样设计可以考虑目前或者以后做多线程访问的控制判断(即允许多读,但不允许多写),以后还有可能对一类表有固定必需字段的要求,这样的需求可以利用powerdesigner来统一添加。另外,每一表建议只有主键非空,其余字段均可空,字段的非空判断交由程序来处理,不用数据库来判断。

 

 
原创粉丝点击