当前位置:   article > 正文

【祈安云盘】系统设计+目录结构+用户数据库设计_网盘后端数据库设计

网盘后端数据库设计

【祈安云盘】用户数据库设计+注册

祈安云盘项目系列文章:
【启动】一个云盘项目——Java后端



重大事件!!!云盘项目有名字了——祈安云盘,为什么叫祈安呢,无奖竞猜一下!

一、系统设计

想了想,还是画一些图,思路更清晰一些。
首先是系统页面功能图
在这里插入图片描述虽然这个图丑丑的,但是思路一下就清晰了。

二、接口设计

这里插一句,使用Apipost工具设计接口。

三、项目目录结构

在这里插入图片描述

说明:
entity层:entity层是实体层,用于存放实体类,与数据库中的属性值基本保持一致,实现set和get的方法。
mapper层(dao层):对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在mybatis中方法主要与与xxx.xml内相互一一映射。
service层(包括service接口、实现类):业务service层,给controller层的类提供接口进行调用。一般就是自己写的方法封装起来,就是声明一下,具体实现在serviceImpl中。
controller层(web层): 控制层,负责具体模块的业务流程控制,需要调用service逻辑设计层的接口来控制业务流程。因为service中的方法是我们使用到的,controller通过接收前端H5或者App传过来的参数进行业务操作,再将处理结果返回到前端。
  • 1
  • 2
  • 3
  • 4
  • 5

四、注册

一个开发项目,肯定要从登陆注册开始,首先根据每个功能设计用户数据库。

1.用户数据库设计

首先,需要唯一标识的用户id作为主键
用户注册需要生成唯一标识的用户id,需要填写用户邮箱、用户昵称、密码、qq授权登录
用户账号登录需要用户邮箱、密码
用户qq登录需要qq_open_id
主页显示用户qq头像
文件管理需要用户的总空间、可用空间
超级管理员需要用户注册时间、用户上次登录时间(判断用户活跃程度)、用户状态

用户ER图如下图:
在这里插入图片描述
设计好用户属性,开始设计用户数据库,在navicat中新建一个表user_info,设计以下字段。
在这里插入图片描述

2.用户entity层

在这里插入图片描述

// entity层有三种实体类,VO、DTO、PO
VO:View Object,主要用于展示层。它的作用是把某个指定前端页面的所有数据封装起来。他的作用主要是减少传输数据量大小和保护数据库隐私数据(如用户密码、用户邮箱等相关信息)不外泄,同时保护数据库的结构不外泄。
DTO:Data Transfer Object,数据传输对象,用于展示层与服务层之间的数据传输对象。
PO:Persistant Object,持久化对象,和数据库形成映射关系。简单说PO就是每一个数据库中的数据表,一个字段对应PO中的一个变量。
  • 1
  • 2
  • 3
  • 4

(1)PO

在PO中创建User_Info.java,根据数据库中的user_info数据表,定义每个属性并声明get和set方法。
在这里插入图片描述
在设计用户数据库时定义了用户的加入时间和最后登陆时间,那么为了方便,创建utils工具包(com.easypan.utils),并在entity中创建enums包(com.easypan.entity.enums)用于表示一些固定的值集合,比如用户的状态、产品的类型等。
在这里插入图片描述
在utils包中新建一个DateUtil类,用于格式化日期(format方法)、解析日期字符串(parse方法)以及获取指定天数后的日期(getAfterDate方法)。
在enums包中新建一个DateTimePatternEnum类,用于定义常用的三种日期时间格式模式:

YYYY_MM_DD_HH_MM_SS: 年-月-日 时:分:秒 (例如: "yyyy-MM-dd HH:mm:ss")
YYYY_MM_DD: 年-月-日 (例如: "yyyy-MM-dd")
YYYYMM: 年月 (例如: "yyyyMM")
  • 1
  • 2
  • 3

每个枚举值都包含一个对应的日期时间格式模式字符串,枚举值还提供了一个 getPattern() 方法,用于获取对应的日期时间格式模式字符串。

(2)VO

在VO中创建User_InfoVO.java,不提供user_info数据表中的密码和qq_open_id,其他与User_Info.java中相同。
这一步完成后的项目目录如下:
在这里插入图片描述
本来想和登录注册部分一起发的,发现文章太长了,下一章再发登陆注册。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/572953
推荐阅读
相关标签
  

闽ICP备14008679号