这篇文章谈不上指导性文章,只是分享一下自己对数据库设计方面的一些经验,希望对刚涉及这一工作的朋友提供一些建议,也希望有高手可以对一些错误或不合理的地方有一个指导,以便于我自身提高数据库设计水平。
首先,我想说一下数据库设计工作在一个项目周期中的重要性,我个人认为,只有四个字“极为重要”,一个好的数据库设计可以
很大程度缩短项目开发时间,为客户展示丰富的业务数据,需求变更过程简单快速。如果说在项目组中,项目经理是大脑,开发测试人员是四肢,那么数据库设计人
员就是心脏,心脏不给力,谈不上优秀的项目组。
数据库设计人员应该具备的素质和能力,我认为可以用以下几点概况:“比需求人员更了解需求”、“比开发人员更懂得编码”、
“比销售人员更了解客户”。前面两点大家可能很好理解,但是为什么要“比销售人员更了解客户”,我感觉这一点和前面两点同等重要,因为数据库设计人员要判
断客户中提出需求的人员是否是项目主要干系人,客户是否对业务流程精通,客户性格是否优柔寡断反复无常,最重要一点,客户是不是此系统最终使用人。如果你
判断客户性格是优柔寡断反复无常型,事事汇报,无权决断,那前期数据库设计就要采用单表少字段,多表关联的设计方法,以应付后期大量的需求变更情况(我深
有感触,需求确认单就是一张废纸)。
当设计一个表的时候,需要判断此表一段时间内的数据量,可能是
1
天、
1
个月或
1
年。根据数据量的程度合理的进行表设计。根据数据量和查询的方式来进行索引的建立。设计数据库首先要满足需求,在满足需求
的条件下,关注对性能的影响,最后再不大损耗性能的基础上,尽可能的给开发人员开发时带来方便,一个表多几个冗余字段,我感觉是可以的。尽量让开发人员少
用到多表联查的方式。
一个好的数据库设计,对整个系统的帮助是巨大的,当一个系统需要提高性能进行重构时,才发现,代码写的再好,一个垃圾
SQL
就给废了。一个
SQL
再怎么优化,不如在数据库设计的时候就考虑到。因为我个人认为,在这个世界中,能量是守恒的,做一件事所用到的能量是恒定
的,不能减少,只能转移,放到软件开发上,就是,想完成一个业务流程,所用到的能量是一定的,性能不如意,我们只能将能量转移,根据功能使用频率,将需要
长时间处理的转移到不怎么使用的功能上。每个环节都分担一点,到了需要大数据量查询的时候,性能会提升不少,人机交互体验也会改善很多。
分享到:
相关推荐
浅谈数据库设计技巧,里面详细解说数据库设计方面的技巧,让程序员做数据库设计更灵活处理.
3分技术,7分经验。让我们来看看前人的经验吧
浅谈数据库设计技巧.mht
浅谈数据库设计方法 本文主要对数据库设计理论内容进行全面分析,这是建立在软件开发经验基础上实施 的操作,可以根据不同角度来阐述数据库设计的方法,以及设计技巧,让更多的数据库 设计人员了解数据库设计相关...
浅谈数据库设计 在当今的信息时代,信息已逐渐成为决定生产力、竞争力和经济效益的重要资源,管 理者只有及时、准确地掌握相关信息,才能做出正确的决策。数据库技术是指对于一个 给定的应用环境,构造最优的数据库...
说到数据库,我认为不能不先谈数据结构。1996 年,在我初入大学学习计算机编程时, 当时的老师就告诉我们说:计算机程序=数据结构+算法。尽管现在的程序开发已由面向过 程为主逐步过渡到面向对象为主,但我...
数据库设计技巧,可以让新手了解数据库的设计。。。
老程序员工作笔记,五年以上的开发人员在工作中积累的经验,可以帮组很多新手,你值得拥有。
浅谈ORACLE数据库优化设计.pdf
浅谈数据库系统优化 概要:数据库系统的优化可以有效提高系统的性能,微软的SQL Server数据库的优化是一个系统工程,需要从设计开始就进入优化程序。 数据库的性能的优化成了数据处理的一个很重要环节。系统的性能...
包含数据库设计的三大模式,数据库的经典数百条语句,浅谈数据库
浅谈数据库设计相关技巧
浅谈Oracle数据库表的设计技巧.pdf
浅谈小区物业管理数据库设计.docx
浅谈小区物业管理数据库设计说明.doc
浅谈基于MySQL数据库结构设计.pptx