购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP


感悟14
数据库结构
——数据库设计经验谈

数据库在很多种软件中都用得到,尤其是在信息管理系统中更为重要,数据库结构设计在整个管理系统的工作量中所占的比例较小,但地位绝对不可忽视,就如同楼房的地基一样重要,那么数据库结构的重要性具体有哪些呢?笔者根据多年来的工作经验及向他人学习所得,总结出以下几点。

❏ 能够比较好地配合业务需求变化,良好的数据库结构要能够充分体现系统的业务需求,世界上唯一不变的就是变化,用户的业务需求也不例外,设计良好的数据库结构能够灵活地应对未来业务需求的变动。

❏ 保证数据的准确性和一致性,通过主键、外键、非空、限制、唯一索引等保证数据的健壮。

❏ 提高数据查询效率,通过合理表结构,划分物理存储分区、增加索引等方式,能够提高数据的读取速度、提高管理系统的查询效率。

❏ 有利于数据的维护,数据库的维护非常重要,甚至许多单位有专门的数据库管理员。

说明

上面说的都是关系型数据库的情况,当然你可能还有其他的见解,这里仅是列出了一些笔者认为比较重要和常见的内容。

从上面的几点可以清楚地看到,数据库结构不但关系到软件系统的性能,而且关系到软件未来的需求扩展和变动,既然数据库结构的设计如此重要,那么如何才能设计出良好的数据库结构呢?笔者具体总结如下。

❏ 编写数据库命名规范文档,仔细研究业务需求,编写数据库命名规范文档。在面向对象的编程方法中,良好的数据库结构命名规范非常有利于编写代码。

❏ 规范字段的命名。

➢ 尽量采用有意义的字段名,这样的字段名可读性较强,容易理解不抽象,万事过犹不及,若字段名称可能过长,可采用缩写的模式。在使用C#语言开发管理系统时,如果使用OR映射技术,有意义的字段名能够加快代码的编写效率及减少bug的产生。

➢ 采用前缀方法命名,同一名称的字段出现在多个表中(外键的情况除外),可使用表名称的前缀加字段名的方式区分。

➢ 尽量保持主、外键字段名称的一致性,这样利于程序员分析数据关系。

➢ 不要使用保留字。

❏ 创建数据字典。数据字典中主要应该包括每个字段的名称、数据类型、长度、是否主键、是否外键及字段含义等信息,创建数据字典有利于项目组内的非数据库设计人员了解数据库信息,加快开发效率,作为程序员都有这样的感触,若是对数据库结构陌生,编写程序就会十分缓慢,甚至有时焦头烂额,若是对数据库结构非常熟悉,则编写程序就十分顺畅,而且错误也非常少。

❏ 创建ER图表。ER图表用于描述表与表之间的关系,这有利于程序员在编写程序时分析数据关系、处理业务逻辑。

❏ 适量地使用触发器和存储过程,过度使用触发器和存储过程会增加数据库服务器的负载、减弱程序的可读性。

❏ 设置数据类型要谨慎,使用数据类型要考虑其实用性,考虑未来数据的变化、考虑是否过分影响系统系能。

❏ 适度使用索引。适当地使用索引可以大幅度提高数据库性能,大多数关系型数据库都自动索引主键字段。外键索引也十分重要,在同时查询主表和子表数据时就显得十分重要。定义索引时,注意数量不宜过多,因为建立索引本身要耗费系统性能;不要索引大型字段,因为这样的索引会占用太多的存储空间。

❏ 尽量用约束和规则强制数据的完整性,数据的完整性是管理软件设计是否成功的重要指标之一,在软件开发中,尽量采用约束和规则强制数据的完整性,而不要完全依赖编写的业务逻辑代码来控制,因为它的保证性有限,并且有时实现起来非常烦琐。

❏ 合理利用视图,有些数据逻辑无法直接从现有的数据表中取出,若通过现有的数据表构建出视图可以解决问题的话,则不必非得应用程序直接访问数据表,使用视图的优点有很多,可以定制数据、简化操作、提高数据安全性等,但也要注意,过分依赖视图会给服务器带来内存压力。

说明

上面说的都是关系型数据库的情况,这里仅是列出了一些笔者认为比较重要和常见的内容供大家探讨。 TBBOditEV2B37vKIsXq6bQHVrzYe3scFGCzijbYSflhV2Ojid3W8v890jpR2tX4U

点击中间区域
呼出菜单
上一章
目录
下一章
×