数据库
首页 > 数据库> > Kao数据库设计心得

Kao数据库设计心得

作者:互联网

组名:原来名字可以这么长
项目名:Kao——教育部学科评估管理信息系统
组员:黄舟瑜 沈伟峰 赵双艺 全鸿润 梁晶淼

最近几周我们组设计了数据库,并且在讨论课上与老师以及同学们进行了交流,找出了设计的几点问题:

一、需求分析的重要性
在刚开始项目时,我们有简单构思过数据库的表结构,简单地给出了一个初步的设计。这个初步的设计很多地方都非常地模糊,更多是凭着感觉来。之后,我们按照要求,先进行了需求分析等等工作,随着需求的逐渐明确,我们对项目的理解逐渐加深,数据库的表以及之间的关系逐渐明确。在这个背景下,我们正式展开了数据库 1.0 版本的设计。在这一次会议上,我们的设计十分迅速,而且清晰明确,和我们目前在使用的数据库差别仅有 10%~20%。理论和实践都告诉了我们,数据库的设计应当依托于完善的需求分析,只有立足于需求,才能设计好一个数据库。所以,针对我们的数据库,一开始想以功能来进行分类,发现设计的结果并不符合需求,存在大量的数据冗余。后来我们从原型出发,对每个界面进行了分析,从它需要什么数据开始逐层分析,共同讨论,提高接口函数的复用率,最终设计出了组员理解,项目适配的数据库。

二、数据冗余问题
老师上课指出数据冗余这一点是数据库设计的重中之重,程序的性能很大程度上也和这点间接相关联,数据库的数据越多,对数据的基本操作就会变得越慢,当数据库中存储了大量数据并且数据大量冗余时,对应用程序的响应就会变慢,导致用户对应用程序的体验变差。但在设计实际数据库的时候,需要根据应用程序的需求设计,而不仅仅只是存储了应用程序所需要的数据。有时候为了应用程序的设计方便,必要的数据冗余也无可厚非。由于还未进行到具体的开发,我们保留了一些数据段,以备后续的修改使用。在 1.0 版本设计完之后,随着我们项目的逐步推进,需求有所变化,初版的设计也暴露了一些不合理之处,其中主要以数据长度不合理及缺少字段为主。在修改的时候也带来了一些不便,在数据库评审时老师也提到了这一问题,于是我们对数据库进行了一些冗余设计:在不确定数据长度时,适当地增加了长度;在部分字段可能有改动的表中,添加了几个冗余字段,它们在目前的实现中暂时不会被使用。这也提醒了我们,在设计数据库时应当添加适当地冗余,以应对未知的变化,因为冗余带来的损失并不大,但是更改表结构则会带来许多麻烦。

三、访问权限
最后,就是针对我们的项目,应该考虑到不同人员访问数据库的权限,所以要设置不同的权限。不同的用户如果不分配指定的角色,就可能会具有某些权限来修改我们不希望被修改的数据,从而导致数据库中的数据出现混乱;亦或是具有对其他表的访问权限,能够访问到程序设计者并不希望被用户访问到的数据。在这一点上,我们组决定数据库与前后端结合,层层验证,进最大可能确保数据的安全性。

经过这次项目的数据库设计,我们体会到设计数据库不是一个简单的数据搬运工作,需要细心加仔细,结合思考,设计出针对本项目更加高效的数据库。组员的凝聚力得到了提升,交流通顺,大家都对本组的项目有了更深的理解。

四、优秀组员感悟(全鸿润)
在数据库设计的过程中,可谓一波三折,遇到的问题很多,学到的东西也很多。数据库设计的主要负责人是由我和组员沈伟峰,在一开始进行设计时,我先自己根据之前已经写好的需求文档设计了一个大概的样板,在这个过程中,发现需求文档中所涉及到的数据、实体类之间的关系过于复杂,本来想按着需求文档应该可以很快进行设计,真正到设计时,才发现所要考虑的东西有很多。比如学校类和排名类之间的基数关系是一对多还是多对多;是不是需要单独设省份表、市区表;以及用户密码如果要加密,保存的密码的字符长度取多少等等。这只是我个人一开始在设计数据库时面临的问题,带着这些问题,2020年10月29日,我们小组在线下对数据库设计进行小组讨论,会议讨论了数据库实体类确定、实体类属性设置、实体类之间的关系,经过讨论,成功解决了我之前自己在设计数据库时遇到的问题,感觉豁然开朗,再一次感受到团队合作的力量,当然,也得益于小组每个人都事先仔细阅读了需求代码、数据库设计规范,在讨论当天,一切都进行的很顺利。
但后面的数据库设计过程中依旧遇到了不少问题。2020-11-01,针对院校表的设计,我增添了学校类型字段,新增新闻类;以为数据库设计得还可以,但没过多久,随着对需求得进一步挖掘,我们又发现了大量问题,根据需求又对数据表得字段进行了字段的扩增,这次比较大的变动使我意识到,数据可设计并非易事。在经过再三检查后,我们小组于2020-11-9将数据库文档交与指导老师测评,但老师指出了很多存在的问题;这时候,我们的数据库设计文档已经改到了第四版,最终通过小组成员的共同努力,终于初步通过指导老师的审批。
反复的修改和不断地讨论,是在数据库设计过程经历最多的事了。让我再次意识到,团队合作是解决问题的有效方式之一。在这个过程中,也深刻意识到数据库设计对后面开发的重要性,如果数据库设计不合理,到后面发生改动的代价就会越大,虽然数据库设计还不是很完善,但我们小组会一直跟进,完善数据库设计。

标签:需求,数据,数据库,Kao,设计,心得,我们,冗余
来源: https://www.cnblogs.com/hnuhzy/p/14012869.html