VoiceShield数据库分析心得

  数据库创建的过程当中,首先是在数据库需要什么数据这一块纠结了非常久。由于我们中途大幅度修改了需求内容 ,由原来的系统底层插件转变为了一个能够进行隐私通话的一个聊天软件,由原来的基本上不需要创建表到需要表的转变。为此,我们小组进行了无数次线下的小组会议,并且多次与负责该项目的老师与学姐进行反复地商讨,最后得出了现如今的表格。

  刚开始先是根据之前做的需求分析来讨论具体需要建立哪些表,但由于我们的项目的功能比较单一,也没有很多的管理界面,所以一开始我们只建立了一些很基础的表和字段。然后我们分配了任务,各自用power designer建立了物理模型。但在整合的时候问题就出现了,我们在讨论的时候只讨论了有哪些字段,但没有去规定具体的数据类型,名称也不是很统一,结果事倍功半。

  之后我们在网上查看了一些类似的项目的数据库,发现了不少我们没有想到的内容。在汇报的时候,老师也提出了一些表中可以有的字段,我们想的是以后用的时候再加,但其实这是错误的做法,应该在设计数据库的时候考虑全面,不管用不用得上都可以添加,以免之后浪费更多的时间。

  我们按照最基础的功能设计出了用户信息表、登陆表、联系人表等。该表格标记了唯一的用户账号与用户密码,并且记录了我们此时该用户的登陆态,这一点非常重要,需要关联到是否我们后面能否两个在线用户相互联系。

  接下来是总的噪音库,为了实现噪音的选择,这个噪音用于记录的是服务器存储的路径以及对应的角色;接下来是用户噪音库,设计出用户噪音库方便用户基于系统提供的噪音生成自己的噪音,每个噪音唯一标记相对应的用户,作为外键连接相对应的账号或者是ID,这样也方便于之后用户上传自己的噪音。接下来的表都是按照我们需要实现的功能对应创建表格。至此,程序的大体数据库设计便已经完成。

  后来,在负责后端的同学对系统进行简单开发的过程中,发现我们设计出的表存在许多不足之处,需要增加一个后端的显示页面对数据库进行增删改查操作以及用户信息等管理,对这些东西的管理势必需要设计一个管理员的登陆账号与密码,因此一个独立于所有表的管理员表应运而生。

  在连接外键的过程当中,出现了许多连接的问题,通过查询网上的内容我们总结出无法连接外键的以下问题 :

foreign key 不能添加常见原因:

  1.检查是否指向的键是主键。

  2.检查是否已经建立了索引,一个外键必然会有一个索引。

  3.检查是否表内已经存有数据,导致约束失败

  4.检查被参考键和参考键的类型是否相同

  5.检查是否重建了同名的索引,比如第一次建立失败,再次建立可能会因为索引重复导致失败

  6.检查是否在键上设置了unsigned。

  做数据库设计部分,首先必须弄清楚表中列的数据类型,是char、varchar、int、datetime、smallint型等等,还有是几个字符长度。还有的就是它的值是否可以为空的,这也是需要考虑的。设置主键相对而言就比较容易了,我们最大的体会是对于表中每列的数据类型的分析必须谨慎细心,并且表与表之间的外键关系一定一定要反复检查,否则很容易出错。

  要是以后遇到外键连接我们肯定需要参照以上的原因一一排除,势必会找到对应的问题。

  在这次数据库的设计中,小组内的分工和相互协调很重要,大家可以在分工中扬长避短,这样可以很好的提高大家的积极性和合作意识,并有效缩短开发时间,但我们这方面做得还不够,沟通还是做得不够好,导致人力资源浪费。这次经历教会了我们很多,这在以后的学习和工作中将会非常重要。

posted @ 2020-11-20 19:53  Kamly  阅读(84)  评论(0)    收藏  举报