• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

数据库设计必须考虑的细节

发布: 2007-7-04 17:55 | 作者: admin | 来源:  网友评论 | 查看: 29次 | 进入软件测试论坛讨论

领测软件测试网

1、为了避免数据转换时可能遇到的主键意义冲突,表格的主键应该选择无意义的INT类型整数。推荐叫做id。而且使用INT型字段作主键和外键时,表间连接的效率也很高。


2、每个有意义的表格应该添加comment备注字段,以存储无法完全记录的其他数据。


3、每个实体应该记录开始启用时间和停用时间,仅在这段时间内是有效的。(by gashero)启用时间可以在生成表格时自动生成,结束时间可以预先设为世界末日。这样可以通过时间是否等于世界末日,或者当前时间是否小于结束时间来判断当前是否可用。


4、实体间联系应该尽可能的考虑到发生多对多联系的可能,(by gashero)很多业务制定者也无法确定是否会发生这种联系。


5、避免使用varchar数据类型,这种不定长数据类型会增加处理时间,降低性能,一般仅用于注释字段等等可能非常大,但是长度却不确定的字段。


6、字段名的选取可以参考面向对象的思想,字段名只要描述表格的某一属性即可,无需在字段名之前一定要加上表格名,这样只会徒增烦恼。


7、字段设计常常会遇到集合元素的选取,比如实体的几种状态。(by gashero)这种设计常常很烦躁,如果使用有意义的字符串作值,则引用完整性维护有相当的难度,而且性能很低。如果使用外键序号来代表状态,而引用另外一个标识状态的表格,则表格连接也有一定的性能损失。但是一般来说还是推荐后一种方式。引用完整性的作用不仅仅在于效率,而且在于维护能力。


8、存储过程绝对是个好东西,不过很可惜,有些开源数据库不支持。可以把存储过程想象为一个可调用的函数,可以返回记录集。所以这个函数可以存在于数据库中也可以存在于程序中,如何选取是个爱好问题。数据库内部实现的存储过程效率很高,但是对维护性有一定的问题。程序中实现的存储过程几乎没什么效率可言,仅仅是方便而已。


9、不要太盲目于整形和浮点型的效率。如果你有兴趣,可以自己测试一下,在现代的电脑中,浮点数的计算速度比整数类型的还高。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网