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

王朝other·作者佚名  2006-12-07
窄屏简体版  字體: |||超大  

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

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

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

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

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

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

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

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

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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航