首页 > 技术文章 > 数据库设计体会

raidenmei 2018-11-22 10:39 原文

数据库设计心得体会

  关于数据库的设计,我们组的是我先一个人设计的,然后大家集思广益,前前后后修改了5、6次,说心得应该是没有太多的,体会还是有不少。

  首先第一点,数据库设计之前要弄清楚需求,这一点很重要,如果对要设计的软件的需求都不了解,那么设计出来的数据库绝对是错的,在弄清楚需求之后,就要分析我们这个产品它的用户/角色有哪些,比如我们的项目角色就分四种:普通用户、特殊用户、操作员和系统管理员,除了用户之外还有实现产品功能所需要的一些实体,比如我们的就有:视频、评论、点赞、评论、消息、投诉等。

  确定实体之后,我们需要确定每个实体有哪些属性,这个阶段不需要完全想清楚,弄出个大概就可以了。

  确定好属性之后,我们要考虑实体之间的关系,是一对一还是一对多还是多对多,关系是保存在实体表中的一个字段还是另外新建一张关系表,这个过程十分漫长并且复杂,需要反复推敲,怎样做才是最好的(这里的好,包括数据库的结构、完整性、冗余等,也包括开发人员调用数据库是否方便),而在确定关系之后我们再反过来考虑实体中的每个字段是否合理,是否有漏掉什么字段,这里最好的做法就是对着需求列表,思考这个过程中数据库中应该有的变化。

  在做完以上事情后,数据库应该反复检验,首先是是否符合三个范式,然后是这样设计是否合理(如果有特殊需求,违背三大范式也是可以接受的,只要合理)。

  下面说说设计的过程中的一些下经验吧。

  首先是主键的问题,我们会在实际项目中遇到双主键甚至三主键的问题,这样的话这个主键在后面做外键就会非常麻烦,对此解决的方法是,在表中添加一个编号,来代替多个属性作为主键。第二点是表不嫌多,能拆开的尽量拆开,最后就是,要多多听取他人意见,一个人思考的角度往往是有限的,一个庞大的项目,需求非常复杂,一个人来设计,总或多或少漏掉一些东西,这时候他人的意见就会成为帮助你完善设计的一大助力。

推荐阅读