新手必须知道的数据库设计经验

请大家耐心看完,肯定有收获!  

  在一个项目中,数据库是骨架,数据库的好坏直接影响到整个项目的可扩展性,也就是二期开发的难易程度,也会影响公司对于该项目的盈亏情况。

数据库设计似乎都是高层领导的事,离程序员很远,遥不可及!但,程序员必须掌握一些数据库设计的基本能力!

    在这里,简单列出一些数据库设计时必须知道的几个要点。

    一:没有完美的数据库设计,只有符合业务的数据库设计!

            在数据库的设计中,业务起主导作用,我们要根据客户的业务需求来设计数据库。客户的需求千奇百怪,我们的数据库必须要满足客户的业务需求。

            但我们也必须拥有后瞻能力。尽可能的预料以后客户的需求,提前做好数据的存储!

    二:数据库设计中的三大范式

               众所周知,数据库的范式越高,数据库中表与表中的关系越明确,数据查询效率越低,项目开发成本增高,项目的用户体验度越低。

              基于这几点,我们在设计数据库时到底要不要遵守三大范式呢?答案是肯定的,三大范式是数据库设计的一种标准!我们可以遵守,但也是有个度。

             在客户的 体验度和标准之间,很多公司都会选择前者,因为现在的互联网中,谁抓住了客户,谁就是王者!不管是以搜索引擎为生的百度,还是游戏娱乐为主

             的腾讯,现在电子商务巨头阿里巴巴!哪个手中不是掌握着不可计数的用户?所以我们的数据库设计,在遵守标准的同时也要考虑客户的体验!有用户才有天下!

    三:数据库设计时必须要做的

           1.需求的分析;

           2.考虑.需求的变更;

            以上两点中,需求分析是必须的,第二点尤为重要,但考虑需求的变更,这点关乎整个项目在上线后的项目的后期维护难易程度(公司前期开发是不怎么赚钱的,

            最赚钱是在后期的维护中,比如增加新功能,增加新业务!),这也就关系到了公司的盈利情况了。(一切要为公司着想!这才是老板需要的人!)

    四:数据库设计中具体要注意的几点;

           1.凡是用户输入的不能作为主键;

                  这点大概都知道,主键是唯一的,一般不能让客户做任何操作;

            2.凡是有业务意义的不能作为主键;

                  既然是具有业务意义,客户随时都有可能提出这个业务,要求修改业务,也会有变动的可能!

            3.除非确定是有必要的字段,其他都允许为空;

                  设计数据库时,约束简单点最好,约束多则在系统中开发时要注意的就多,开发效率相对会底,因为系统是可以通过验证辅助完成这些约束的!

            4.不能缺少时间或日期字段;

                    有时间是永远前进,时间的用处很多,打个很简单的比方,在用户表中我们有一个用户创建的时间,在吧项目交个客户后使用一段时间,客户提出新的需求,

                     比如说:要搞一个周年庆活动,每个满5个月的用户都奖励200代金卷,等等。在这时我们如国有时间字段,那就很容易加上这个业务,但要是没有呢?

                     将会如何?修改数据库?公司的利益会受到严重的打击;

            5. 业务的时效(时间有效)性;

            6.数据的采集宁滥毋缺  

                    这点非常重要,这就是数据库设计者的后瞻能力了,也就是说我们能在用户还没有提出一些新的需求是,已经把数据都采集好了,就等客户提出需求

                    很轻松的搞定一些业务;有了数据什么都不怕;但有些人也会问,我们前期就把没有用到的数据存进去,后期可以利用也就罢了,如果没有利用到呢?

                    是不是很浪费空间;其实这个问题,我可以这样回答,绝大多数公司在很多方面都是以空间换取时间的;(相信大家都明白!比如在web中使用的AJAX技术)

            7.外键字段需要维护或变更,就需要表来维护,如果字段简单,不需要经常变更的,可以直接是程序维护;

                  这点我就不在赘述;


          

           




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值