第17组—第三次团队作业:项目系统设计与数据库设计
这个作业属于哪个课程 | [至诚软工实践F班] |
---|---|
这个作业要求在哪里 | 第三次团队作业——项目系统设计与数据库设计 |
这个作业的目标 | 为项目前期做准备,包括项目后序分工、数据库及系统文档的编写 |
Gitee或Github仓库地址 | Github仓库 |
其他参考文献 | ... |
一、项目预期开发计划
周数 | 任务安排 | 当前进度 |
---|---|---|
第一周 | 数据库等前期工作准备、项目分工 | 已完成 |
第二周 | 应用端界面、管理端界面开发 | 开发中 |
第三周 | 应用端界面、管理端界面开发 | 待开发 |
第四周 | 应用端界面及接口模块开发 | 待开发 |
第五周 | 前后端数据交互及代码审查 | 待开发 |
第六周 | 优化代码并进行第一阶段功能性测试 | 待开发 |
第七周 | 修复BUG及进行第二阶段功能性测试 | 待开发 |
第八周 | 修复BUG,最终审查及调试 | 待开发 |
第九周 | 总结项目并进行项目上线 | 待开发 |
二、项目开发预期分工安排
学号 | 姓名 | 角色 | 预期任务量 |
---|---|---|---|
212106705 | 陈明灿 | 应用端及接口开发 | 应用端界面设计及开发、后端接口的开发、前后端数据交互 |
212106756 | 陈贇 | 管理端开发 | 管理端界面设计及开发、前后端数据交互 |
212106731 | 沈丹 | 数据库搭建及项目测试 | 数据库搭建、文档撰写及对软件进行测试 |
212106762 | 黄佳琳 | 协同开发及项目测试 | 协同前后端工作、PPT制作及文档撰写、对软件进行功能性测试 |
212106764 | 黄智嘉 | 协同开发及项目测试 | 协同前后端工作、对软件进行功能性测试 |
三、项目设计图
该章节内容详情可见:系统开发文档
3.1 系统功能层次图
3.2 类图
3.3 基本设计概念和处理流程
3.3.1 登录流程
3.3.2 配送员申请流程
3.3.3 学生认证流程
3.3.4 二手交易流程
3.3.5 订单接收流程
四、数据库设计
需要确定数据表名称,所包含字段名称,数据类型,宽度以及建立的主键、外键等描述表的属性的内容。本项目全部20个数据表,包括如下:
管理员表、角色表、菜单表、角色菜单表、业务字典表、业务字典内容表、用户表、地址表、商家表、产品类型表、产品表、订单表、轮播图表、广告表、论坛表、评论表、点赞表、闲置物品表、组织表、电话簿表
详情可见:数据库设计文档
4.1 数据库设计
4.1.1 系统管理
表名:admin
说明:管理员表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | admin_id | varchar | 10 | √ | 管理员唯一标识 | |||
2 | admin_account | varchar | 15 | 管理员账号 | ||||
3 | admin_password | varchar | 20 | 管理员密码 | ||||
4 | admin_name | varchar | 10 | 管理员用户名 | ||||
5 | admin_portrait | varchar | √ | 管理员头像 | ||||
6 | admin_gender | int | 5 | 0 | √ | 管理员性别 | ||
7 | admin_email | varchar | 25 | √ | 管理员邮箱 | |||
8 | admin_phone | varchar | 11 | √ | 管理员手机号 | |||
9 | admin_permissions | varchar | 10 | 管理员权限 | ||||
10 | admin_enableStatus | int | 5 | 0 | 管理员启用状态 | |||
11 | admin_deleteStatus | int | 5 | 0 | 管理员删除状态 |
表名:role
说明:角色表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | role_id | varchar | 10 | √ | 角色唯一标识 | |||
2 | role_name | varchar | 15 | 角色名称 | ||||
3 | role_deleteStatus | int | 5 | 0 | 角色删除状态 |
表名:menu
说明:菜单表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | menu_id | varchar | 10 | √ | 菜单唯一标识 | |||
2 | menu_name | varchar | 15 | 菜单名称 | ||||
3 | menu_parent | varchar | 10 | √ | 父菜单id | |||
4 | menu_priority | int | 5 | 0 | 菜单优先级 | |||
5 | menu_link | varchar | 链接地址 |
表名:role_menu
说明:权限分配表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | role_id | varchar | 10 | 角色唯一标识 | ||||
2 | menu_id | varchar | 10 | 菜单唯一标识 |
表名:dictionary
说明:业务字典
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | dictionary_id | varchar | 10 | √ | 业务字典唯一标识 | |||
2 | dictionary_name | varchar | 15 | 业务字典名称 |
表名:dictionaryContent
说明:业务字典内容
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | dictionaryContent_id | varchar | 10 | √ | 业务字典内容唯一标识 | |||
2 | dictionaryContent_text | varchar | 15 | 业务字典内容文本 | ||||
3 | dictionaryContent_value | int | 5 | 0 | 业务字典内容值 | |||
4 | dictionary_id | varchar | 10 | 业务字典唯一标识 |
4.1.2 用户管理
表名:user
说明:用户表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | user_id | varchar | 10 | √ | 用户唯一标识 | |||
2 | user_account | varchar | 15 | 用户账号 | ||||
3 | user_password | varchar | 20 | 用户密码 | ||||
4 | user_name | varchar | 10 | 用户名 | ||||
5 | user_portrait | varchar | 用户头像 | |||||
6 | user_gender | int | 5 | 0 | √ | 用户性别 | ||
7 | user_email | varchar | 25 | √ | 用户邮箱 | |||
8 | user_phone | varchar | 11 | √ | 用户手机号 | |||
9 | user_stuID | varchar | 10 | √ | 学号绑定 | |||
10 | user_wxID | varchar | 30 | √ | 绑定微信 | |||
11 | user_isStudent | int | 5 | 0 | 学生认证是否通过 | |||
12 | user_isMerchant | int | 5 | 0 | 是否为商家 | |||
13 | user_isPartTime | int | 5 | 0 | 是否为兼职 | |||
14 | user_balance | double | 9 | 2 | 0 | 用户余额 | ||
15 | user_status | int | 5 | 0 | 用户状态 |
表名:address
说明:地址表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | address_id | varchar | 10 | √ | 地址ID | |||
2 | address_details | varchar | 地址名称 | |||||
3 | address_linkman | varchar | 10 | 联系人 | ||||
4 | address_phone | varchar | 11 | 联系电话 | ||||
5 | address_gender | int | 5 | 0 | 联系人性别 | |||
6 | user_id | varchar | 10 | 用户唯一标识 |
4.1.3 商家管理
表名:merchant
说明:商家表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | merchant_id | varchar | 10 | √ | 商家唯一标识 | |||
2 | merchant_name | varchar | 50 | 商家名称 | ||||
3 | merchant_type | int | 5 | 0 | 商铺类型 | |||
4 | merchant_portrait | varchar | 商家图标 | |||||
5 | merchant_address | varchar | 商家地址 | |||||
6 | merchant_notice | varchar | √ | 商家公告 | ||||
7 | merchant_createTime | datetime | 商家入驻时间 | |||||
8 | merchant_enbleStatus | int | 5 | 0 | 商家启用状态 | |||
9 | merchant_deleteStatus | int | 5 | 0 | 商家删除状态 | |||
10 | user_id | varchar | 10 | 商铺负责人(用户id) |
表名:goodsClassify
说明:产品类型表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | goodsClassify_id | varchar | 10 | √ | 产品类型唯一标识 | |||
2 | goodsClassify_name | varchar | 10 | 类型名称 | ||||
3 | merchant_id | varchar | 10 | 商家id |
表名:goods
说明:产品表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | goods_id | varchar | 10 | √ | 产品唯一标识 | |||
2 | goods_name | varchar | 50 | 产品名称 | ||||
3 | goods_portrait | varchar | 产品图片 | |||||
4 | goods_price | double | 9 | 2 | 产品价格 | |||
5 | goods_abstract | varchar | 产品简介 | |||||
6 | goods_status | int | 5 | 0 | 产品状态 | |||
7 | goods_inventory | int | 9 | 0 | 产品库存 | |||
8 | merchant_id | varchar | 10 | 商家id | ||||
9 | goodsClassify_id | varchar | 10 | 产品类型id |
表名:order
说明:订单表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | order_id | varchar | 20 | √ | 订单唯一标识 | |||
2 | order_number | varchar | 20 | 订单编号 | ||||
3 | order_type | int | 5 | 0 | 订单类型 | |||
4 | order_goods | varchar | 订单商品 | |||||
5 | order_status | int | 5 | 0 | 订单状态 | |||
6 | order_price | double | 9 | 2 | 订单金额 | |||
7 | order_createTime | datetime | 订单创建时间 | |||||
8 | order_successTime | datetime | 订单完成时间 | |||||
9 | order_deleteStatus | 订单删除状态 | ||||||
10 | address_id | varchar | 10 | 地址唯一标识 | ||||
11 | merchant_id | varchar | 10 | √ | 商家id | |||
12 | user_id | varchar | 10 | √ | 兼职跑腿员id | |||
4.1.4 推送管理
表名:slide
说明:轮播图表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | slide_id | varchar | 10 | √ | 轮播图id | |||
2 | slide_picture | varchar | 轮播图图片 | |||||
3 | slide_link | varchar | 链接地址 | |||||
4 | slide_note | varchar | 轮播图备注 | |||||
5 | slide_createTime | datetime | 轮播图创建时间 | |||||
6 | slide_priority | int | 5 | 0 | 轮播图优先级 | |||
7 | slide_status | int | 5 | 0 | 轮播图状态 | |||
8 | slide_module | int | 5 | 0 | 轮播图所属模块 |
表名:advertising
说明:广告表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | advertising_id | varchar | 10 | √ | 广告id | |||
2 | advertising_source | varchar | 50 | 广告来源 | ||||
3 | advertising_title | varchar | 50 | 广告标题 | ||||
4 | advertising_link | varchar | 广告链接 | |||||
5 | advertising_picture | varchar | 广告图片 | |||||
6 | advertising_createTime | datetime | 广告创建时间 | |||||
7 | advertising_expireTime | datetime | 广告到期时间 | |||||
8 | advertising_status | int | 5 | 0 | 广告状态 |
4.1.5 论坛管理
表名:forum
说明:论坛表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | forum_id | varchar | 10 | √ | 帖子id | |||
2 | forum_contentJson | varchar | 帖子数据内容 | |||||
3 | forum_createTime | datetime | 帖子创建时间 | |||||
4 | forum_classify | int | 5 | 帖子分类 | ||||
5 | user_id | varchar | 10 | 发布人(用户id) |
表名:comments
说明:评论表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | comments_id | varchar | 10 | √ | 评论id | |||
2 | comments_contentJson | varchar | 评论内容 | |||||
3 | comments_createTime | datetime | 评论时间 | |||||
4 | user_id | varchar | 10 | 评论人(用户id) | ||||
5 | forum_id | varchar | 10 | 回复帖子(帖子id) |
表名:like
说明:点赞表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | like_id | varchar | 10 | √ | 点赞id | |||
2 | forum_id | varchar | 10 | 帖子id | ||||
3 | user_id | varchar | 10 | 点赞用户id |
4.1.6 二手市场管理
表名:idle
说明:闲置物品表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | idle_id | varchar | 10 | √ | 闲置物品id | |||
2 | idle_title | varchar | 20 | 闲置物品标题 | ||||
3 | idle_contentJson | varchar | 闲置物品json数据 | |||||
4 | idle_price | double | 9 | 2 | 闲置物品价格 | |||
5 | idle_status | int | 5 | 0 | 闲置物品交易状态 | |||
6 | user_id | varchar | 10 | 发布人(用户id) |
4.1.7 校园服务
表名:organization
说明:组织表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | organization_id | varchar | 10 | √ | 组织id | |||
2 | organization_name | varchar | 20 | 组织名称 | ||||
3 | organization_logo | varchar | 组织Logo | |||||
4 | organization_contentJson | varchar | 组织风采 | |||||
5 | organization_quantity | int | 10 | 组织人数 | ||||
6 | organization_type | int | 5 | 组织类型 |
表名:phoneBook
说明:电话簿表
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | phoneBook_id | varchar | 10 | √ | 电话簿id | |||
2 | phoneBook_name | varchar | 20 | 电话簿名称 | ||||
3 | phoneBook_phone | varchar | 11 | 电话簿号码 | ||||
4 | phoneBook_type | int | 5 | 电话簿类型 |
4.2 数据库E-R图
4.2.1 总图
4.2.2 管理员、权限分配模块
4.2.3 业务字典模块
4.2.4 用户及地址模块
4.2.5 商家模块
4.2.6 帖子模块
4.2.7 推送模块
4.2.8 二手市场模块
4.2.9 校内服务模块
五、接口设计
对于接口的设计,详情可查看Github仓库中的:接口开发文档
六、系统安全与权限设计
6.1 系统安全
-
在对于前后端分离的接口设计时,应当考虑接口安全性,用户是否有足够的权限可以调用或访问接口,我们将使用JsonWebToken生成用户token,在调用接口时将用户token以请求头的形式进行上传,进行验证用户权限,当用户有权限或在token规定的时间中开发对接口的使用
-
对于数据库安全性,以定时任务将数据库进行备份
6.2 权限设计
- 通过对登录的验证返回token,将权限加密存储至token中,在使用时进行权限验证
七、工作流程及分工、贡献度比例
-
分工贡献度
学号 姓名 工作内容 贡献度 212106705 陈明灿 数据库文档、接口文档编写、博客的编写及发布 25% 212106756 陈贇 系统开发文档编写及图例绘制 25% 212106731 沈丹 E-R图绘制及数据库创建 18% 212106764 黄智嘉 文档整理、协同开发 14% 212106762 黄佳琳 PPT制作及答辩准备、协同开发 18%
八、Github-commit记录
九、Github地址及文档
-
Github仓库地址:Github仓库地址
-
系统设计说明文档:系统设计说明文档
-
接口设计开发文档:接口设计开发文档
-
数据库设计开发文档:数据库设计开发文档
-
本次PPT文档:PPT文档
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!