数据库设计心得——千朵玫瑰带来的黎明
1.项目简介与背景
随着中国工业化的高速发展,公路总里程已经达到525万公里,大桥数量已经超过100万座。因此,如何针对路面和桥梁的缺陷进行及时检测和维修,促进中国社会主义现代化经济的发展,成为一个关键问题。本产品致力于方便路桥缺陷的识别和维修。
路桥缺陷识别系统是为用户提供线上和线下服务的应用。通过对路面和桥梁进行拍照,利用深度学习的算法对图片进行缺陷识别分析,给出相应的反馈结果。服务接收方(例如路桥承包单位)根据反馈的结果进行相应的处理,派出专业人员进行维修。软件通过可视化数据,针对性给出路桥缺陷区域,供服务接收方统筹规划。
2.团队介绍
项目名称:基于深度学习的路桥缺陷识别系统
指导老师:荣辉桂
小组名称:千朵玫瑰带来的黎明
小组成员:刘其、陈禹澎、姜涵、时子俊、常守豪
3. 数据库设计过程
我们组在进行项目设计前仔细推敲了数据库的设计,结合了之前撰写的项目需求文档与用例文档之后设计出了如下的数据库表。
序号 | 表名 | 功能说明 |
---|---|---|
1 | user | 用户表 |
2 | image | 图片存储表 |
3 | location | 地理位置信息表 |
4 | defect | 缺陷信息表 |
5 | task | 任务表 |
6 | engineer_team | 工程队表 |
7 | work | 工程完成情况表 |
8 | access_log | 登录日志 |
9 | detect_log | 缺陷检测日志 |
10 | query_log | 缺陷查询日志 |
4. 数据库ER图设计
5.数据库设计心得
陈禹澎:
在数据库设计过程中,我主要负责的是登录日志、检索日志和检测日志三个表。
日志关系到审计要求,方便管理人员检查使用情况。所以这几个表应该有时间、对应行为(如检索日志的任务 ID)和用户 ID 这些字段,来确定谁干了什么事情,做到全流程可溯源,追责起来也有证据。
日志也关系到平台的安全,比如通过 IP 检查异地登录可以很方便发现账号的盗取行为。
表的字段设置也有讲究。因为图片是使用定长 UUID 索引的,所以在检索日志中可以直接存储 UUID 对应的长度 char
,不需要使用 varchar
或浪费空间;用户有使用 IPv6 访问的可能,所以不能简单地考虑到 12 字节的 IPv4 的需求,便设为 char(12)
。
此外,在表的设计之外,还考虑到了日志的写入方式。为了防止数据库连接错误,以及长时间连接数据库挤占连接与性能,计划采用先写入文本文件,使用 crontab
运行进程或者另一个线程的方式将文件写入数据库。这样能够提高性能,以及程序的健壮性。
刘其:
在本次数据库设计中,我主要负责设计图片存储表、缺陷信息表、任务表、工程队表。
我所设计的这几个表可以说是本系统的核心功能部分,在经过多次小组讨论后我们才确定这几个表设计的具体字段及其含义。
任务表是整个系统业务功能最重要的一环,它联系了图片表以及工程队表,一个任务得包含路桥维修前图片和维修后图片,所有它有process_image_id
和accomplish_image_id
这两个字段,这样就可以确保每个任务能够精准生成,精准解决。
姜涵:
在本次数据库设计中,我主要负责用户模块的设计,负责设计了用户表的设计,包含员工 id,姓名,密码,账号类型等,其中账号类型与在登录、执行任务时起到区分身份的作用。
在数据库设计的前期,我们小组对数据库设计方案进行了多次讨论,最终逐渐商定了以图片 uuid 作为标识、任务与图片拆分、日志设计等数据库的实现细节,并运用数据库课程中学到的设计范式规则,不断对已有的想法进行拆分重构,最终得到了现在的以图片为核心的数据库结构。
在设计过程中,我们对数据库的学习又进一步加深,通过查阅资料了解了很多有关设计规范与提升效率的技巧,并在本次项目设计中加以使用。
总而言之,数据库是一个软件的重要组成,通过对数据库的设计能够规范前后端之间的沟通,提高效率,接下来我们便会以数据库的设计模式为中心,进行第一次迭代开发。
时子俊
在本次数据库设计中,我明白了理论与实际应用相结合重要性,并提高了自己数据库设计能力。培养了基本、良好数据库设计技能以及合作能力。
我们从各种文档阅读到开始需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统设计开发过程。理论和实践往往是不一样的。经常做到后面突然就发现自己一开始设计有问题,然后又回去翻工,在各种反复中不断完善自己想法。
常守豪:
在学习数据库和数据表创建和修改时,了解到表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。
表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。
我们上机的另一个内容是数据库的约束、视图、查询。从中我们了解到查询语句的基本结构,和简单select语句的使用,多表连接查询。而在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的大部分操作,使用视图一样可以完成。使用视图不仅可以简化数据操作,还可以提高数据库的安全性,不仅可以检索数据,也可以通过视图向基表中添加、修改和删除数据。我们还学习了,sql管理、数据的导入、导出、备份和还原。有sql server 安全访问控制;登录账户的管理;数据库角色的管理;用户权限管理。
维护数据库的安全是确保数据库正常运行的重要工作。数据的备份是对sql server数据事务日志进行拷贝,数据库备份记录了在进行备份操作的数据库中所有数据的状态。而数据的备份还分为数据库完整备份、差异备份、事务日志备份、文件及文件组备份。做数据备份就是为了以后的数据库恢复用。我做了管理数据库,其中的要求包含了许多数据库的对象,综合了我所学的许多知识。总而言之,通过课程学会了很多,很是还需要继续深入学习。
标签:数据库,视图,朵玫瑰,设计,日志,缺陷,心得,备份 From: https://www.cnblogs.com/redwine/p/16859259.html