2006-10-09

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

来源: CSDN 作者:佚名 评论 0 条
 

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


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


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


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


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


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


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


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


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


(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:SQL模糊查询  
下一篇:如何编写高效的数据库代码
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号