数据库设计注意

简介: 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语句放在配置文件或数据库中,动态装入执行。

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

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

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

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

目录
相关文章
|
10天前
|
存储 安全 数据库
数据库设计
数据库设计包括需求分析、数据模型设计、详细设计、创建数据字典、编写数据脚本和测试。关键考虑因素有数据完整性、物理设计优化和安全性。最佳实践建议避免复数表名、空格,加密密码,用整数作ID并优化索引,以及确保安全备份。良好设计能保障应用系统的稳定性和性能。
7 1
|
4月前
|
存储 缓存 关系型数据库
数据库设计优化
数据库设计优化
45 3
|
4月前
|
SQL 存储 数据可视化
使用PowerDesigner做数据库设计(一)
使用PowerDesigner做数据库设计(一)
77 0
|
6月前
|
存储 数据库
数据库设计三大范式
数据库设计三大范式
|
9月前
|
存储 关系型数据库 数据库
数据库设计之三大范式
数据库设计之三大范式
|
关系型数据库 数据库
浅谈数据库设计之三大范式
范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。
118 0
|
存储 SQL 数据采集
一文带你了解数据库设计基础
什么是数据库设计? 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。
1817 0
一文带你了解数据库设计基础
|
存储 SQL 数据库
[学习笔记] 数据库设计三大范式与 BCNF,学习笔记
[学习笔记] 数据库设计三大范式与 BCNF,学习笔记
|
存储 Java 数据库
数据库设计 | 学习笔记
快速学习数据库设计
102 0
数据库设计 | 学习笔记
|
存储 关系型数据库 数据库
7_数据库设计
7_数据库设计
146 0
7_数据库设计