开发者社区> mydcool> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

数据库设计注意

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

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

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

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据库设计规范
基于阿里数据库设计规范扩展而来
28227 0
数据库审计
产品简介 中安威士数据库审计系统(简称VS-AD),是由中安威士(北京)科技有限公司开发的具有完全自主知识产权的数据库审计产品。该系统通过监控数据库的多重状态和通信内容,不仅能准确评估数据库所面临的风险,而且可以通过日志记录提供事后追查机制。
1419 0
数据库设计-逻辑设计
数据库设计 逻辑设计: 什么是逻辑设计? 独立于具体的物理数据库之外,抽象出的数据库通用的设计模型。 逻辑设计是做什么的? 将需求分析转化为数据库的逻辑模型。 通过常用的数据库设计方法,如ER图对逻辑模型进行展示。
1128 0
数据库设计原则
http://tech.ccidnet.com/zt/she/
461 0
数据库优化设计方案
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/4344546 本文首先讨论了基于第三范式的数据库表的基本设计,着重论述了建立主键和索引的策略和方案,然后从数据库表的扩展设计和库表对象的放置等角度概述了数据库管理系统的优化方案。
891 0
数据库设计范式
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/2573413 关系数据库设计之时是要遵守一定的规则的。
777 0
+关注
mydcool
php相关专家
286
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载