您的位置:首页 > 数据库

数据库设计经验浅谈一

2005-01-06 09:31 260 查看
根据多年设计经验,我总结了一些应用系统设计套路和大家一起探讨探讨,比较简单,抛转引玉而已
数据库部分:
每次来一个新的系统,做完需求后,总是要设计数据库, 根据业务需求设计表结构,也是有一定套数的,如果不按照这些套数走,总是会系统实施,维护带来问题,教材上的三个范式比较抽象, 我这几年总结下来,觉得数据库设计主要就下面几个类型
两大主要类型,维护类和应用类
维护类有3种类型
代码表  程序里用来进行硬编码的表,这类表一般都可以通过程序里定义枚举,集合类型来代替 常见的设计是id,code,name三字段,这些表在系统初始化的时候,不可以清除数据
基础表  一个系统里面的基础资料,比如职工,科室,部门这些,这类表还有一个特性就是需要分类.常见设计是两个表,表一是实体表,必须的字段是ID,编码code,名称name,备注,删除标志,所在分类 表二是分类表,作用是对实体表进行分类,字段有id,上级编码,是否末级,name,两个表通过表一的所在分类和表二的id进行关联.
基础表最典型的应用就是部门表的设计,部门是个树状结构,设计表结构的时候,新手总爱设计成一个表,带来很多问题,按照基础表模式设计,就可以避免
关系对照表 对两个基础表进行组合, ,其字段有ID,基础表一主键id,基础表二主键id. 典型应用是:要保存职工和部门的关系,设计的时候并不是在职工表里面添个所属部门来关联,而是单独设计一个职工部门关系对照表
应用表有两大类型,就是大家比较熟悉的主从明细表类型
主表 根据需求来设计,这类表需要的字段除了业务信息外,还需要审核标志,制单人,审核人,操作时间,以及业务流程控制字段
从表 保存主表的详细业务信息,通过主表的ID做关联,往往是一条主表记录关联多条从表记录
应用表典型应用就是管理系统中各种单据的保存
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 

关于ID的设计,有两种选择比较好
第一个是 自增长的ID,整形数
第二个是 GUID类型,(在分布式开发时候,推荐使用)
 

在设计一个应用系统的数据库时候,强烈建议先做概念模型,每个表大多数都可以按照上面总结的类型来设计
表的设计规范化后,最大的好处还在于,在开发程序中,针对这五种类型,配合对象持久化技术,就可以开发通用的程序模板,从而提高开发效率关于表设计和对象设计之间的关系,有机会后我也总结一下经验,和大家探讨探讨
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库