标签:nbsp 链接 关系 方案 应用程序 包括 意义 知识点 小知识
一、团队项目信息
项目名称:纸云记单词微信小程序
指导老师:陈浩
开发小组:熬夜冠军小队
小组成员:黎欣宇、程开龙、李梦珠、彭李轶哲、唐思琳
二、数据库设计过程
1、概念结构设计
2、逻辑结构设计
3、数据库物理设计
三、设计心得
黎欣宇:
数据库的设计是一个项目中非常重要的一部分,数据库的设计往往需要考虑很多方面,完整性约束、域约束等等,数据库保存了大量的数据表,可以长期的存储信息。而数据库的设计,也需要十分的严谨和规范,一个字段的添加与否都要仔细斟酌,在这次是设计数据库时,我们组的每个成员负责一部分的数据库设计,最后将每个人设计的部分组合起来,这种方式可以让每个人都参与到数据库的设计当中,熟悉数据库的设计方法和项目的情况,但是对于数据库之间的关系来说,需要最后整合的人花费比较多的力气。
我们组在讨论课前做好了一版数据库的设计,但是讨论课上老师又提出了很多的问题以及我们不完善和不合理的地方,比如单词表的设计,缺少了很多必要的字段,例如单词音标,课后我们组又进行了完善,可以说是大幅修改了数据库的设计,在修改的过程中,又发现了很多之前没有看出来的问题,反复进行了多次修改以后确定了方案。
数据库的设计,既不能太简短也不能太冗杂,既要保存数目的全部信息,又不能有过于重复的数据,这就对设计者有较高的要求,主外键的设置也需要仔细考虑,主键要确保唯一性,外键的引用要准确有意义;再就是数据类型和长度,不需要更改的数字,例如id,应该设置为char而不是int;长度的设计也需要根据实际,否则可能会不够长或者浪费空间。这次数据库的设计,也让我熟练了powerDesigner的使用,在今后的项目中能更好的设计数据库。
彭李轶哲:
以前在做代码编程题的时候,因为数据量比较小,习惯性地把数据直接存放在数组中,方便又简洁。但是在一个大型项目中,尤其是面向市场中的广大用户的实际项目,数据量往往是非常庞大的,而且数据需要长期储存,数据的重要性也要求其不能丢失,这时数组便无法满足我们的需求,数据库也就派上了用场。
数据库系统是我们这个学期才开的一门专业课,当我们还没有完全学会时,创新课程这边就已经提出了设计数据库的要求,这也印证了老师们强调的学软件就是要在做中学。
在设计数据库之前要清楚项目的需求,也就是需求文档一定要先于数据库设计完成。如果对要设计的项目需求都不了解,那么设计出来的数据库绝对是错的。在弄清楚需求之后,我们就要分析这个产品它的用户/角色有哪些,比如我们的项目角色就分四种:普通用户、管理员、超级管理员。除了用户之外还有实现产品功能所需要的一些实体,比如我们的就有:听写、对战、商城等。
在设计数据库时,要先考虑设计哪些表,表的数量可多不可少。太少的话要么就是项目的功能没有全部实现,要么就是表的字段全都冗杂在一起。其次要考虑字段的设计,哪些字段作为主键,哪些字段可以作为外键,以及每个字段的数据类型,字段的长度也要合理,不能太小也不能太大。有些表的主键可能涉及到几个字段,这样的主键设置是不利于建立表与表之间的联系的,可以新增一个编号字段作为主键。
最后我想说的是既然项目开发是一项团队工作,那么数据库的设计也需要大家一起分工合作,因为一个人考虑事情再周全也会被禁锢在自己的思想中,一个人思考的角度往往是有限的,一个庞大的项目,需求非常复杂,一个人来设计数据库,总或多或少漏掉一些东西,这时候他人的意见就会成为帮助我们完善设计的一大助力。
程开龙:
经过这次数据库设计,我个人觉得在数据库设计中最重要的是如何保证数据库中的数据是正确且易操作的,在某种程度上可以极大地简化应用程序的其他内容
在团队中,每个人负责的功能不一样,他们所设计出的表也不一样,在对数据库进行整体设计时要考虑到很多方面 不仅要尽量符合范式,还要减少数据冗余,表与表间的联系要准确,逻辑要正确,从而提高效率和维护数据一致性,而且数据库系统都具有生命周期的,在生命周期内,存在着升级和调整,所以数据库设计时候还要从数据库的易维护、可扩充的角度进行考虑,大体上的步骤为,找到所有实体和他们之间的关系,用ER图进行删减多余信息,最后根据三大基本范式对表进行重新检查。其中学到的一个小知识点,关于设计数据库中分表或者分库的设计考虑,主键不要设为自增型。设置为自增型的后果就是:今后无法分离在不同的mysql数据库服务器上。比如id编号由于是自增的,所以两个数据库中可能会出现用户编号都是10005的情况。但是,mysql主键会自动设置为自增型。可以用另外一个字段来作为标识符。而不是自增型id号。方法:新增一个字段作为行的标识符。具体设计:一个表做两个字段,一个是id作为主键,自增型,另外一个是uid,作为用户的标识,是以uid作为判断用户的依据。而不是id主键作为判断依据
通过这次的数据库设计,巩固了我们对数据库基本原理和基础理论的理解,掌握了数据库系统设计开发的基本方法,进一步提高了我们综合运用所学知识的能力。
唐思琳:
数据库的设计目的在于保存各种过程对应的实体信息,同时保存各种联系以便后面查询数据。所以整体来说就是设置表格储存信息,设置外键等联系,确保储存和查询统计的合理性。在这次实验的数据库设计就是各个界面的数据库设计。我主要负责的部分是用户表,单词表,听写表和查看结果。先将实体写出来,写出实体属性,然后是主键和外键。特别要注意的是你设计多个表的时候,有可能都保存有同一个数据,所以要和小组成员协调合作,沟通到位,保证同一个属性在不同表里的名字也是一样的。
因为数据库的设计是根据实体来的,所以我们可以根据画的E-R图来确定数据库表格。然后的话关于数据库的设计,第一是可以使用mysql,用纯sql语句设计。但是因为这个十分的繁琐,所以一般不考虑。这样的话就可以使用数据库管理系统。一般的话可以使用Navicat。用navicat链接到数据库,然后就可以可视化的数据数据库了。这样对于数据库的列和数据库信息的导入也变得十分方便。
总的来说,数据库的设计要根据具体的实体而来,是为了保存数据和后面的查询方便设计的。找准设计数据库的目的,然后根据实际情况,合理运用工具就可以设计出实用的数据库了。
李梦珠:
对于数据库表的创建部分,包括了字段名、数据类型和主键的设计。
首先必须清楚表中列的数据类型,是char、varchar、int、datetime、smallint型等等,仔细分析字段的数据类型,选择合适的数据类型,并确定所选数据类型的字符长度。
一般,id不进行运算,不设置为int类型,设置为varchar类型,并指定字符长度就可以。int型不能指定宽度,而char,varchar需要指定宽度。
设置字段的名称时,要确保字段名有意义且易于理解。
确定数据库表的主键,考虑主键是否为自增长型,还是有一定的命名规则,如学号:yyyyddccxx yyyy入学年份,dd学院编号,cc所在行政班级编号,xx在班级内的顺序编号。主键的设置需要保证通过主键可以唯一确定一行记录。
还需要考虑设置的列的值是否可以为空。
在数据库表中表的列名不能重复,具有唯一性;在数据库中表的名称不能重复,具有唯一性。
标签:nbsp 链接 关系 方案 应用程序 包括 意义 知识点 小知识
原文地址:https://www.cnblogs.com/lxyblogs/p/14012649.html