数据库设计注意

简介: http://blog.csdn.net/chenhuoren/article/details/4941131 搞数据库,从毕业出来工作到现在也有好几年了,总的来说,自己对数据库的架构设计算不上很精通,但还是把自己在设计中的经验说说吧,希望对大家今后的设计有帮助。

http://blog.csdn.net/chenhuoren/article/details/4941131

搞数据库,从毕业出来工作到现在也有好几年了,总的来说,自己对数据库的架构设计算不上很精通,但还是把自己在设计中的经验说说吧,希望对大家今后的设计有帮助。

我个人认为,在数据库的架构中,需要注意以下的几个问题。

一:数据库名称命名要简洁,并体现其应用或功能。如库名QCOA,QC为公司简称,OA为OA系统中的主数据库;为了防止被分析破解,表名建议采用子系统简写+功能单词首字母,如审批管理子系统中:OAMD,该表的字段名为MD001,MD002......MD022并预留五到十字段供扩展,对常用表还应定义十个以上的自定义字段,供客户自定制,自定义字段统一命名UDF01...UD99。表和字段都应该在数据字典作标准,实际开发时,用向导从数据字典生成具体应用数据绑定窗口和控件,不过,这样设计的数据库,在交付用户使用的时侯需要同时交付数据库说明文档,方便客户的数据库管理。

二:嵌套关系的数据表,一定要在数据字典中注明,并备注好关键字段。注意这里嵌套并不一定是主从表。如ERP系统中的工单表,一个成品对应一张工单,该成品由N个半成品制成,又是N张工单,N个半成品可能又可细分若干层的半成品。一般就由单头单身表二个表表示这样的数据,也可用一张表。

三:数据字典的设计,表和视图都必须记录在字典中;其对应的触发器和存储过程也必须备注中对应的表中;表、视图必须按模块分类管理。

四:严格控制存储过程的使用,这是血泪教训呀,我们公司的HR有600多个存储过程,三四个人二三批维护修正了十个月都没完全搞定。这就是开发时的随意和图修改方便造成的恶果,那个别人开发的HR在我看来是垃圾,我都不碰那个东西。建议,除非大数据量的处理,则不用存储过程!业务逻辑封装到程序业务类中,或将SQL语句放在配置文件或数据库中,动态装入执行。

五:表单设置,即实际应用时某些有单号(流水号)的表,如订单表,其单号由单据性质和流水号组成。建议:建一个单据设置表,统一保存这些表的表单设置和最大单号,也方便用户进行单号的设置,以及单号的生成(可以据设置表中保存的设置和最大单号值,用存储过程无冲突生成最大单号)。我的数据库表一般都这样设计的,但现在看网上说,好像对这种方法不认可,主要在于这样设计的数据库关系繁多,没有使用存储过程来得方便。这里就看自己的需要吧,我的建议还是用我的办法,因为这样的话,程序的改动不会带来数据库大的变动。

六:在数据库设计中,并不是关系越多越好,而应该是在适度的范围内,这需要经验的积累,再这里一两句也说不清楚。模块与模块之间的数据交接,应该最多只有一个关系的存在。

七:不要轻易的允许某些字段为空,所有允许为空的字段必须是基于用户需求,而不是出于设计上方便的考虑。这样带来的好处是让详细设计中的某些错误和疏漏(如在设计中没有考虑对非空字段的内容检查)在编码和单元测试阶段就被发现,从而避免了进一步扩散,有助于提高软件的质量。

有评论曰:严重不同意你的第四条。看来你没在大型公司做过数据库

目录
相关文章
|
5月前
|
存储 人机交互 数据库
如何数据库设计?
本文介绍了数据库设计的四种方法和基本步骤。直观设计法依赖设计者经验,规范设计法(如新奥尔良法)遵循软件工程原理,分为需求分析、概念设计、逻辑设计和物理设计四个阶段。计算机辅助设计法借助软件工具,自动化设计法则通过人机会话自动生成数据库。设计步骤包括需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和运行维护。需求分析是关键,概念结构设计是基础,逻辑和物理设计涉及数据模型转换和存储优化,而运行维护是持续改进的过程。
106 0
如何数据库设计?
|
5月前
|
存储 数据处理 数据库
为什么要进行数据库设计?
本文探讨了数据库设计的核心概念,包括满足用户的信息和处理需求,以及所需的知识背景,如计算机科学、数据库原理、软件工程和应用领域知识。设计内容分为结构设计(概念、逻辑和物理设计)和行为设计(应用程序设计)。强调了结构设计与行为设计的紧密关联,并指出数据库设计是跨学科的综合性技术,重视管理和基础数据的重要性。
53 0
为什么要进行数据库设计?
|
6月前
|
关系型数据库 MySQL 数据库
数据库设计
数据库设计
54 1
|
6月前
|
存储 缓存 关系型数据库
数据库设计优化
数据库设计优化
79 3
|
6月前
|
SQL 存储 数据可视化
使用PowerDesigner做数据库设计(一)
使用PowerDesigner做数据库设计(一)
243 0
|
存储 数据库
数据库设计三大范式
数据库设计三大范式
|
存储 SQL 数据采集
一文带你了解数据库设计基础
什么是数据库设计? 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。
2685 0
一文带你了解数据库设计基础
|
存储 关系型数据库 数据库
数据库设计之三大范式
数据库设计之三大范式
|
SQL BI 数据库
PowerDesigner数据库设计
手把手带你学会基本常用的操作,如果有同学刚好需要学习,请不要直接copy操作,建议加入自己的理解,码字不易给个三连吧,实在不行点个赞也行~~~
194 0
|
关系型数据库 数据库
浅谈数据库设计之三大范式
范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。
153 0