手势识别项目小组——数据库设计心得

因为我们的项目是算法类,所以项目本身的需求不太明确。设计数据库的过程其实本身也是在进一步明确需求的过程。

这是我们画出的用例图:

以下是我们小组成员的数据库设计心得:

JJ:

通过本次数据库设计的过程,我经历了很多也学会了很多。

首先因为课程组的要求是设计出至少15张表,而我们想要达到15张表是很困难的。我们的设计想法是先根据我们之前设计的原型先设计出一些表,根据登陆、注册、历史记录等设计了几张表。但是这些表也基本是基于用户而设计的,后来我们也寻求了指导老师的帮助,指导老师帮忙想了一个损失函数表。但是表的数量仍然是不够的。之后我们去寻求了尹庚老师的帮助,在尹老师的帮助下我们简直像是打开了新世界。

之前一直在想办法增添合适功能的我们终于找到了方法,我们决定不仅写一个算法。而是进行多个算法的比较,这样可以增加算法表,同时算法的训练也可以建表。通过增加这个表,我们项目的功能也进一步丰富了。至于实在建不出表的情况,我们可以增加一些额外的小辅助功能。比如说主题更换,友情链接等等。其实表是依赖于功能的,功能丰富了,表自然也就可以写出来了。

根据功能建完表后,我们对于表的主键及类型、长度和其是否符合三大基本范式等都进行了探讨。最后一步步确定了表的基本形态。这里不同人的命名方式也可能存在差异,需要统一。在数据库小班课上也很感谢老师给出的建议,提出了一些我们没有想到的方面,对我们的数据库设计表进行了完善。

依据软件工程课上学到的知识和内容,我们将其应用到了实际设计过程中,做到了“做中学”。数据库的设计就是要让其能满足后面开发的需要,并且尽量的好用,在数据类型、域约束、主键外键等的设置上要考虑实际情况更加小心。

LYX:

我们小组,做的是手势识别项目的数据库,因为是纯算法型的,最开始的时候表又少作用又不大,然后我们加入了用户,和与之相关的几个功能,这样我们的表终于多了一点,最后我们通过向老师求助,老师提供了较好的想法,终于把数据库大体定下来。

然后我们开始完善,发现好多问题,比如未遵守范式,变量命名方式不统一等等。通过制定标准,进行讨论,解决了问题。

数据库设计部分,我认为首先需要弄清楚的是实体(或者表)之间的联系,其次是必须弄清楚表中字段的数据类型,是char、varchar、int、date&time型等等,还有是几个字符长度。还有的就是它的值是否可以为空的,这也是需要考虑的。设置主键相对而言就比较容易了,我最大的体会是对于表中每列的数据类型的分析必须谨慎细心,否则很容易出错。

我们虽然学习了数据库,但是我们还是缺少经验。现在我们利用自己学到的知识设计一个数据库,这本身就是一个知识转化为生产力的过程,所以大家都很兴奋,都不同程度的投入了很高的热情与努力。

GM:

对于一个项目,数据库的设计是非常重要的,数据库设计决定了以后的数据好不好维护,需求有没有得到较好的的满足,后期需求更改好不好展开,同时也决定了系统的性能。一个不够好的数据库设计对于一个功能点的改动可能会涉及多张表的改动,一不小心可能就会引起数据的不一致。为了避免这些不必要的麻烦,在数据库设计之初就要考虑这些问题,从而减少后期的系统维护量。说了这么多数据库设计的重要性,那么我对数据库设计有以下的思考。

关于范式与反范式,范式设计的目的是为了减少数据冗余从而节约存储空间提高查询效率,同时也使得数据一致性容易得到维护。而反范式的设计主要考录历史数据要反应历史问题,需要将数据冗余到表中。具体采用什么方式就要分析我们的业务是属于哪种情况视具体情况而定采用哪种方式。像涉及到财务方面,涉及到以后财务对账,历史变更就有很大的用处,所以数据冗余相当重要,就会考虑到反范式。针对我们的项目,主要需要减少数据冗余,也不存在历史变更问题,出于提高查询效率的目的,我们选择了范式设计

至于扩展性设计,项目初期业务场景的数据模型是一对一,但我们对未来的项目进行了一定程度的设想,并且分析后期会变成一对多。这种情况不要为了前期方便设计成一对一数据模型,如果这样做到后期可能得不尝失。这就是数据拓展性设计需要考虑,不要为了一时的便捷忽略了设计的扩展性。

YDY:

在原型项目设计设计完毕后,我们进行了数据库的设计。数据库是要根据需求来进行设计,这也是我们数据库设计实验中要求我们需要掌握的。

设计数据库时,我们首先进行功能的罗列,然后根据我们要实现的功能来进行设计数据库中含有那些表,每个表中各自含有什么字段,字段的类型、约束等等。比较重要的就是在进行设计时,要考虑到功能,把每一项功能的实现需要用到数据表和字段都要仔细地设计和审查,同时也需要考虑实现的复杂程度。

课程要求每个项目需要至少设计出一定数量的数据表,所以我们针对此也和指导老师进行了沟通,进行需求的讨论并最后进行了一些功能的添加,使得整个项目的功能得到了很好的充实。在这里我们一开始因为对于数据库表的个数有要求,所以在起初对表的设计时制作了很多个数据表。但是在后来小组内整合和审查的时候,发现在设计时已经把一些可以合在一起的数据表分离开了,所以之后又对表进行了重新整理。

对于每张表的主键外键等的确定,我们组内意见没有什么分歧。同时对设计出来的表都注意到了满足范式的问题,符合了数据表设计的规范。设计出来的数据库也只有符合规范以及考虑到所有的功能的实现才能算是一个好的数据库。

QMX:

在完成了需求分析后我们紧接着完成了项目数据库的设计。上一次的心得体会中有提到,我们小组项目的功能不算太多,主要是集中在用户注册登录和图片识别这里。因此,在设计数据库时,还是出现了跟上次分析需求时类似的问题达不到课程组要求的数据库表的个数。一开始,能够想到的表的个数才不到10个。后来去问了指导老师,才想到原来可以从别的方向来增添数据表,比如神经网络模型的训练过程、不同类型的图片集存储等等。虽然在小班课评审时老师对表的细节上指出了一些不足之处,但大体上还是过关了的。我们小组讨论数据库设计时,是按照项目的功能需求来一个个分析的,例如用户登录功能可能会用到哪些表等,这样子既能提高效率,也保证了不会有漏掉的表或字段。这种讨论方式在其他实验课的数据库设计中也可以借鉴使用。

原文地址:https://www.cnblogs.com/jiangjia/p/11823050.html

时间: 2024-10-10 04:13:36

手势识别项目小组——数据库设计心得的相关文章

基于Android平台的汽车租赁平台项目的数据库设计心得

我们团队的项目是基于Android平台的汽车租赁平台,其分为手机客户端与web后台管理系统,用以满足租车公司的业务需求,故数据库设计对于本项目显得尤为重要,我们团队数据库设计最开始用的是最原始的方式:Word手动输入,但随后随着数据库课程以及实验的学习,我们最后使用的PowerDesigner设计的数据库并生成了SQL文件,导入数据库完成的数据库最终设计与搭建,我们团队于第8周完成了数据库的搭建. 数据库设计中,数据库要严格与项目需求相联系,同时保证数据库数据完整.正确.安全以及数据处理的高效与

智能查寝数据库设计心得

这次项目的数据库设计我们小组主要由苏文江同学负责,我并没有出多大力,但是我们组对于数据库的设计还是进行过许多讨论的,我也只是做了一点微小的工作.具体的设计情况就不多说了,其他几位成员的博客里面已经写得很详细了,下面就写一下相关的收获. 充分理解需求,明确实体之间关系 对于需求的充分理解,可以帮助我们节省大量的时间.通过对用户需求进行综合,归纳与抽象得到一个个实体,对实体之间的关系进行约束,便于我们对概念模型的设计. 表结构的设计是否合理 这样做的话,在之后的实际应用中,如果需求增加或者改变,不会

噪声收集系统——数据库设计心得

数据库设计心得 在需求分析阶段,其实数据库的设计就已经初具雏形,组内初步分析了需要哪些表来存放哪类数据,并探讨了各个表中的关键字段.但在需求分析阶段的数据库设计并不完整,只描述了部分实体,表中的属性也不能完全描述需求,数据库表间的关系没有体现,这就需要进入详细的数据库设计阶段来完善. 在数据库设计的第一阶段,还是围绕用户需求来展开工作.用户的需求在设计过程中扮演着中心角色,如果一开始对需求的分析就出现偏差,那数据库设计就很容易出现问题,好在需求分析阶段结束后我们的需求是十分明确的,项目组内根据项

创新课程管理系统数据库设计心得

因为创新课程管理系统这一个项目,是一个从无到有,没有标准可以去参考的一个项目. 这个项目专门针对该课程进行设计,所以需求的功能点很多,因此数据库有多次设计,更改再推翻重新设计再更改. 因为用户有多个类型,系统管理员,学校管理员,老师,助教,学生. 一开始的时候想把每一个都单独设计为一个表,然后登陆的时候选择身份后直接在对应的表里面进行查找即可.所以当时的用户表是如下的: 后来经过小班讨论课,又觉得可以把所有的用户全部放在一个表里面,即一个User表里面有所有用户的资料,不过这样会导致许多字段的空

医生智能提醒小程序数据库设计心得——Legends Never Die

根据我们小组数据库设计的整个流程,我们将整个数据库设计划分为两个具体的阶段,在每个阶段需要进行不同的准备,有不同的注意事项,接下来我们将结合在数据库设计过程中遇到的一些问题和困难,提出自己的一些观点,希望能对大家有所启发.如有异议,欢迎指正. 一.准备阶段: 在数据库设计前,需要准备以下几样东西: 1:设计工具 数据库设计过程中会用到一些软件,例如powerdesigner(实际上不仅仅是用于数据库设计).想要设计好数据库,熟练运用软件是必不可少的.至于如何学习使用其进行数据库设计,主要的方法还

联邦式知识图谱上的自然语言检索引擎数据库设计心得-T5队

根据我们小组讨论设计数据库的整个过程,可以将数据库的设计分为两个部分:准备部分.设计部分和总结部分.下面根据所分的阶段,对三个阶段所需的准备和注意事项进行阐述. 一. 准备部分: 设计工具 数据库的设计过程之中会使用到一些软件,在软件工程导论这门课上,周老师使用的是powerdesigner进行UML图的设计.数据库设计实验上讲授用powerdesigner来设计数据库.在学习使用该软件的时候,建议观看演示的视频进行学习,没有什么比实际的例子更加容易进行学习的了. 用例图 用例图在明确各类Act

DAY87-BBS项目(一) 数据库设计与简单登陆、验证码

一.BBS项目之项目分析 项目流程: 1 搞清楚需求(产品经理) (1) 基于用户认证组件和Ajax实现登录验证(图片验证码) (2) 基于forms组件和Ajax实现注册功能 (3) 设计系统首页(文章列表渲染) (4) 设计个人站点页面---跨表查询,分组查询 (5) 文章详情页 (6) 实现文章点赞功能 (7) 实现文章的评论 ---文章的评论 ---评论的评论 (8) 副文本编辑框 和 防止xss攻击(防止别人提交js代码) 2 设计表结构 3 按着每一个功能分别进行开发 4 功能测试

数据库设计心得——今天坐地板,明天当老板

1.设计的几点问题: 首当其冲的是权限问题 不同的用户如果不分配指定的角色,就可能会具有某些权限来修改我们不希望被修改的数据,从而导致数据库中的数据出现混乱:亦或是具有对其他表的访问权限,能够访问到程序设计者并不希望被用户访问到的数据. 因此权限问题是设计数据库中非常值得注意的一点. 以下提供一种具体实现方法: 在用户注册的时候,根据用户的注册信息,识别(判断)出这个用户应该具有哪些权限,并在注册表中插入一行,同时使用触发器为插入行授权或分配角色. 其次需要注意数据冗余的问题,这一点还算做的比较

项目中数据库设计

数据库系统设计不止是设计到一次.在这次同学的面试过程中有设计到了,于是再次翻出来以前考过的课本把整本书数据库设计留了一遍有了一些新的发现.分享给大家: 首先数据库设计分成四个大部分: 定义数据结构 数据装载 编制调试 试运行 (一)定义数据结构:主要就是确定数据库模型设计包括概念模型.逻辑模型和物理模型.其中概念模型主要是通过ER图的设计体现的:逻辑结构现在常用的是用三范式来设计关系模型:而物理结构主要就是表的设计. (二)数据装载:把数据转移到数据库中.在小型企业中主要是通过手工数据的,包括格