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个字符的长度。字符串的长度一般定义20、30、50、100、256、512、1024、2048、4096,超过4096个字符可以建议用文本类型来定义。定义字段的长度主要用于定义域的字段长度,从而规范表字段的类型及长度。
3) 表设计的特殊说明
一般,表中的记录如果是假删除的话,则每个表需要统一的删除字段,另外,时间字段一般每一个表也要求出现,这样设计可以考虑目前或者以后做多线程访问的控制判断(即允许多读,但不允许多写),以后还有可能对一类表有固定必需字段的要求,这样的需求可以利用powerdesigner来统一添加。另外,每一表建议只有主键非空,其余字段均可空,字段的非空判断交由程序来处理,不用数据库来判断。