经验谈

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

一个成功的管理系统,是由:[50%的业务+50%的]所组成,而50%的成功软件又有[25%的数据库+25%的程序]所组成,数据库设计的好坏是一个关键。如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述。不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲。所以我归纳历年来所走的弯路及体会,并在网上找了些对数据库设计颇有造诣的专业人士给大家传授一些设计数据库的技巧和经验。精选了其中的60个最佳技巧,并把这些技巧编写成了本文,为了方便索引其内容划分为5个部分:

第1部分-设计数据库之前这一部分罗列了12个基本技巧,包括命名规范和明确业务需求等。第2部分-设计数据库表总共24个指南性技巧,涵盖表内字段设计以及应该避免的常见问题等。第3部分-选择键怎么选择键呢?这里有10个技巧专门涉及系统生成的主键的正确用法,还有何时以及如何索引字段以获得最佳性能等。第4部分-保证数据完整性讨论如何保持数据库的清晰和健壮,如何把有害数据降低到最小程度。第5部分-各种小技巧不包括在以上4个部分中的其他技巧,五花八门,有了它们希望你的数据库开发工作会更轻松一些。第1部分-设计数据库之前考察现有环境在设计一个新数据库时,你不但应该仔细研究业务需求而且还要考察现有的系统。大多数数据库项目都不是从头开始建立的;通常,机构内总会存在用来满足特定需求的现有系统(可能没有实现自动计算)。显然,现有系统并不完美,否则你就不必再建立新系统了。但是对旧系统的研究可以让你发现一些可能会忽略的细微问题。一般来说,考察现有系统对你绝对有好处。定义标准的对象命名规范一定要定义数据库对象的命名规范。对数据库表来说,从项目一开始就要确定表名是采用复数还是单数形式。此外还要给表的别名定义简单规则(比方说,如果表名是一个单词,别名就取单词的前4个字母;如果表名是两个单词,就各取两个单词的前两个字母组成4个字母长的别名;如果表的名字由3个单词组成,你不妨从头两个单词中各取一个然后从最后一个单词中再取出两个字母,结果还是组成4字母长的别名,其余依次类推)对工作用表来说,表名可以加上前缀WORK_后面附上采用该表的应用程序的名字。表内的列[字段]要针对键采用一整套设计规则。比如,如果键是数字类型,你可以用_N作为后缀;如果是字符类型则可以采用_C后缀。对列[字段]名应该采用标准的前缀和后缀。再如,假如你的表里有好多“money”字段,你不妨给每个列[字段]增加一个_M后缀。还有,日期列[字段]最好以D_作为名字打头。

检查表名、报表名和查询名之间的命名规范。你可能会很快就被这些不同的数据库要素的名称搞糊涂了。假如你坚持统一地命名这些数据库的不同组成部分,至少你应该在这些对象名字的开头用Table、Query或者Report等前缀加以区别。

如果采用了Microsoft,你可以用qry、rpt、tbl和mod等符号来标识对象(比如tbl_Employees)。我在和打交道的时候还用过tbl来索引表,但我用sp_company(现在用sp_feft_)标识存储过程,因为在有的时候如果我发现了更好的处理办法往往会保存好几个拷贝。我在实现SQLServer2000时用udf_(或者类似的标记)标识我编写的函数。工欲善其事,必先利其器采用理想的数据库设计工具,比如:SyBase公司的PowerDesign,她支持PB、VB、Delphe等语言,通过ODBC可以连接市面上流行的30多个数据库,包括dBase、、VFP、SQLServer等,今后有机会我将着重介绍PowerDesign的使用。获取数据模式资源手册正在寻求示例模式的人可以阅读《数据模式资源手册》一书,该书由LenSilverston、W.H.Inmon和KentGraziano编写,是一本值得拥有的最佳数据建模图书。该书包括的章节涵盖多种数据领域,比如人员、机构和工作效能等。其他的你还可以参考:[1]萨师煊 王珊着 数据库系统概论(第二版)高等教育出版社1991、[2][美]StevenM.Bobrowski着7与客户/服务器计算技术从入门到精通 刘建元等译 电子工业出版社,1996、[3]周中元 信息系统建模方法(下) 电子与信息化 1999年第3期,1999畅想未来,但不可忘了过去的教训我发现询问用户如何看待未来需求变化非常有用。这样做可以达到两个目的:首先,你可以清楚地了解应用设计在哪个地方应该更具灵活性以及如何避免性能瓶颈;其次,你知道发生事先没有确定的需求变更时用户将和你一样感到吃惊。 1
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值