我们组的项目是基于深度学习时间序列预测系统,其用户部分需要存储用户基本信息、用户安全信息、用户详细信息三个部分。模型部分需要存储模型信息、接口信息、数据集信息三个部分。
- 用户基础信息表
本表包含用户名、手机号码、邮箱、登录密码、用户状态等字段,是用户在注册阶段时完善的表。其中用户手机号为主键,作为用户的唯一标志。
- 用户安装设置表
在用户无法使用短信快捷重置密码或无法使用邮箱找回密码等情况下,我们为用户提供了通过密保答案来重置密码的功能,这就要求用户在注册后,主动完善密保问题和密保答案,完善该表,从而为找回密码提供新的方式。其中用户手机号码为本表主键,同时也继承自用户基本信息表。
- 用户居住地址表
该表为用户注册后自主完善的表,第一版的数据库在设计中直接将国家、省份、城市、地区都存放在了地址表中,在数据库评审中边老师提示我们可以将他们都设为外键,以继承的关系存放,这样可以让数据(国家、省份、城市、地区)的存储结构更加清晰。
- 用户资料表
用户资料表中包括了昵称、性别、生日、自定义头像(上传至服务器中存储的地址)等用户资料,由用户在注册后自行完善。其中教育程度设计为下拉框,用1-5表示“初中及以下”、“高中”、“本科”、“硕士”、“博士及以上”5个选项。性别同样设计为下拉框,定义为boolean型,0女1男,默认为女。
- 模型信息表
一个用户可以对应一个或多个模型,但一个模型只对应一个用户。模型信息中包含接口ID和数据集编号,因此需要继承于数据集表和接口信息表。
- 数据集表
数据集为用户上传至服务器中需要进行训练的数据,这里保存的是数据存储的地址。一个数据集表对应一个或多个模型,但一个模型只对应一个用户。数据集表中不仅保存其用在哪个模型中,也保存了上传的用户。因此,一个用户可上传一个或多个数据集,而一个数据集只对应一个用户。
- 接口信息表
接口信息表存储的是模型训练后传给用户的接口。
应用数据库设计的范式理论对初始关系模型进行优化。数据库设计的三大范式如下:
第一范式:每一个分类必须是一个不可分的数据项。属性不可再分,确保每列的原子性。
第二范式:要求每个表只描述一件事情,每条记录有唯一标识列。
第三范式:数据库表中不包含已在其它表中已包含的非主关键字信息。
数据库运行与维护的主要任务包括:
A、维护数据库的安全性与完整性
B、监测并改善数据库性能
C、重新组织和构造数据库
总结:项目数据库的设计时我们项目开始设计的基础,所以我们小组花了大量时间根据需求不断改进我们的数据库表,特别是表的主键选择上经过了多次讨论才最终定下来。通过数据库设计这个环节,使我进一步理解和运用了数据库这门课程所讲的知识,将抽象理论转换为具象,加深了学习的印象。还有一点就是,突然发现这学期的课程及实验安排的好有道理,并且项目进度和课程进度刚好吻合,溜啊,非常喜欢这种紧密相关的学习,原理老师安排的是在太有心了啊,手动比心^_^。唉,虽然如此,自己的数据库考试考的不理想唉,害得继续加深学习,多实践,不要停留在书本理论知识之上,毕竟这是一门真正的技术,加油