博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业, 从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。
一、研究目的
在当前信息技术迅猛发展的背景下,校园活动的组织与管理已成为高校提升学生综合素质、促进校园文化繁荣的重要手段。传统的纸质报名表和人工签到方式不仅耗时耗力,而且易出现信息不一致、统计滞后等问题,严重制约了活动开展的效率与质量。随着移动互联网和微信生态系统的广泛普及,基于移动端的活动管理已成为一种趋势,但现有解决方案多为通用型平台,缺乏针对高校校园场景的定制化功能,无法满足学生、教师及行政人员在报名、签到、统计等方面的多样化需求。为此,本研究旨在构建一套基于SpringBoot框架与微信小程序技术的校园活动报名与签到系统,以期实现高效、便捷、可扩展的管理流程。具体而言,系统将通过后端微服务实现报名数据的统一存储、权限校验和业务逻辑处理,前端小程序则提供直观的用户界面,使学生能够快速完成报名、查看活动详情并进行二维码签到,同时教师与管理员可实时获取报名情况、签到统计及异常报告。通过对比传统方式,本研究期望在报名准确率、签到时效性和数据可视化程度等关键指标上实现显著提升。进一步地,系统的模块化设计将为后续功能扩展提供便利,支持活动日程管理、奖惩机制集成以及与校园其他信息系统的无缝对接,从而为高校信息化建设提供可复制、可推广的技术范例。
二、研究意义
在高校信息化建设的进程中,校园活动管理作为提升学生综合素质与校园文化活力的重要载体,其高效运作直接关系到教学质量与学生发展。传统纸质报名与人工签到方式不仅耗费人力物力,而且易导致数据不一致、统计滞后等问题,严重制约了活动开展的效率与质量。随着移动互联网和微信生态系统的普及,基于移动端的活动管理已成为趋势,但现有通用平台缺乏针对高校校园场景的定制化功能,无法满足学生、教师及行政人员在报名、签到、统计等方面多样化需求。为此,本研究通过构建基于SpringBoot框架与微信小程序技术的校园活动报名与签到系统,旨在实现报名数据统一存储、权限校验和业务逻辑处理,并提供直观用户界面,使学生能够快速完成报名、查看活动详情并进行二维码签到,同时教师与管理员可实时获取报名情况、签到统计及异常报告。该系统通过模块化设计,为后续功能扩展提供便利,支持活动日程管理、奖惩机制集成以及与校园其他信息系统的无缝对接,从而为高校信息化建设提供可复制、可推广的技术范例。系统的实施将显著提升报名与签到的时效性与准确性,减少人工错误,降低行政成本;同时,通过实时数据采集与可视化统计,管理者能够快速掌握活动参与度、资源使用情况,为后续活动策划提供依据;此外,系统支持多种角色权限管理,可实现教师、学生、管理员等不同身份的功能隔离,保障数据安全与隐私合规;在技术层面,采用SpringBoot微服务架构与微信小程序前端技术,具备高并发处理能力与良好用户体验,可适应高校校园网络环境的变化;从长远来看,该系统为高校信息化平台提供可扩展的模块化基础,可与学生信息管理系统、教学资源平台等实现深度集成,推动校园数字化治理向纵深发展。除此之外,研究过程中对数据安全、身份认证、权限控制等关键技术的深入探讨,将为高校信息系统的安全设计提供参考;通过对比实验与用户调研,本研究将验证基于移动端报名签到系统在提升学生参与度、增强活动透明度方面的有效性,为教育技术领域提供实证依据;最终,系统的落地实施将促进校园活动管理流程的标准化与信息化,提升高校整体治理水平,并为类似教育机构提供可复制、可推广的技术方案。在数据驱动的教育决策时代,系统所产生的高质量报名与签到数据将成为开展教育科研的重要资源;研究者可利用这些数据进行学生参与行为分析、活动效果评估以及学习动机研究,从而推动教育理论与实践的融合;与此同时,系统对接校园一卡通、教务管理等核心信息平台,可实现跨系统的数据共享与业务协同,进一步提升高校信息化整体效能;通过持续迭代与功能扩展,系统可支持线上线下混合活动、社团管理、志愿服务等多元化场景,为高校数字校园建设提供坚实技术支撑。本研究所提出的基于SpringBoot与微信小程序的架构,具备良好的可扩展性与模块化特征,能够根据高校规模与业务需求灵活调整服务部署;在未来工作中,可进一步引入大数据分析、机器学习算法,对报名趋势、签到异常进行预测与预警;同时,可探索区块链技术在活动凭证验证与数据不可篡改方面的应用,以提升系统可信度;通过与云平台的深度集成,系统将实现弹性伸缩,满足高峰期报名冲击的稳定运行。
三、国内外研究现状
在全球范围内,基于移动终端的活动管理系统已成为信息化研究的重要课题。国外学者普遍关注系统的可用性与数据安全,提出了多种基于二维码、NFC以及蓝牙低功耗技术的签到方案,并对其在高校、企业及公共场所中的应用进行了实证研究。与此同时,后端技术方面的研究主要聚焦于微服务架构与容器化部署,以提升系统的可扩展性与弹性;Spring Boot 等轻量级框架被广泛用于快速搭建 RESTful API,配合消息队列实现高并发请求处理。学术论文中亦有对数据分析与可视化的探讨,利用大数据技术对报名与签到数据进行趋势预测、异常检测以及用户画像构建,从而为活动策划与资源配置提供决策支持。国内研究则在此基础上进一步结合微信生态系统,探索基于微信小程序的校园活动管理模式。多所高校已将小程序作为学生报名与签到的主要入口,通过调用统一的身份认证接口实现单点登录,并利用小程序内置的二维码扫描功能完成现场签到。研究者们对系统的性能、易用性以及安全性进行了评估,提出了多层权限控制、数据加密传输以及日志审计等技术方案,以满足校园信息化建设的合规要求。与此同时,国内学术界也关注系统与校园一卡通、教务管理系统等核心信息平台的互联互通问题,尝试通过统一的数据中台实现跨系统的数据共享与业务协同。总体而言,国外在技术创新与理论研究方面具有较强的深度和广度,而国内则在应用场景与实践推广上取得了显著进展。两者共同推动了基于移动终端的活动管理系统向高效、精准、可持续方向发展。
四、预期达到目标及解决的关键问题
预期目标首先是实现一套完整的校园活动报名与签到系统,系统应支持学生通过微信小程序快速完成报名、查看活动详情、生成个人二维码并在现场扫码签到;教师与管理员可在后台实时获取报名数据、签到统计以及异常报告,并能对活动进行审批与管理。其次,系统需具备高并发处理能力,在活动报名高峰期仍保持响应时间低于 200 毫秒,保证用户体验;同时,数据安全与隐私保护是关键目标之一,系统应采用 HTTPS 加密传输、数据库加密存储以及细粒度权限控制,确保学生个人信息不被泄露。再者,为提升管理效率与决策支持,系统需提供可视化统计报表,包括报名人数、签到率、时间分布等指标,并支持导出 CSV 或 Excel 格式供后续分析使用。最后,系统设计应具备良好的可扩展性与模块化,可在未来通过插件或微服务形式添加新功能,如活动日程管理、奖惩机制、社团管理等,以适应高校信息化发展需求。
关键问题主要集中在技术实现与业务流程三方面。技术层面,如何在 SpringBoot 微服务架构下实现高并发的报名与签到请求处理是核心挑战,需要合理设计数据库表结构、索引策略以及缓存机制;同时,微信小程序端与后端接口的安全对接、身份认证与授权流程的实现也需细致考量。业务流程层面,如何在不影响学生使用体验的前提下实现多角色权限管理(学生、教师、管理员)以及审批流的自动化,是系统设计的重要难点;此外,现场签到过程中的二维码生成与校验、异常情况(如重复签到、未报名签到)的处理机制亦需完善。最后,系统在实际部署后可能面临校园网络环境不稳定、设备兼容性差异等外部因素,需要通过容错设计与监控告警来保障系统的稳定运行。
五、研究内容
本研究的整体内容围绕基于SpringBoot框架与微信小程序技术的校园活动报名与签到系统的设计、实现与评估展开,主要分为需求分析、系统架构设计、关键技术实现、功能模块开发以及系统验证与优化五个阶段。首先,在需求分析阶段,将通过访谈、问卷及案例研究等方法收集高校学生、教师及行政人员在活动报名与签到过程中的痛点与期望,形成功能需求清单和非功能需求规范;随后在系统架构设计阶段,采用微服务化设计理念,将后端拆分为用户管理服务、活动管理服务、报名服务、签到服务及统计分析服务等模块,并通过SpringCloud实现服务治理与负载均衡;前端则采用微信小程序框架,利用其原生组件实现报名表单、活动列表与二维码生成等功能,并通过统一身份认证接口完成单点登录。其次,在关键技术实现阶段,将重点解决高并发请求处理、数据一致性保障与安全加密等技术难题;具体措施包括使用Redis缓存热点数据、采用分布式事务管理保证报名与签到操作的原子性、以及在传输层与存储层分别实施TLS加密与字段级加密。随后,在功能模块开发阶段,按照模块划分实现用户注册与角色授权、活动发布与审批流程、报名信息录入与校验、二维码生成与现场扫码验证、签到状态实时更新以及统计报表生成等功能;每个模块均配备单元测试和集成测试用例,确保代码质量。最后,在系统验证与优化阶段,将在真实校园环境中部署系统,收集关键性能指标(如响应时间、并发处理能力、错误率)及用户满意度数据,通过A/B测试或灰度发布方式对功能进行迭代改进;同时,对系统日志进行分析,识别潜在瓶颈并进行性能调优。整个研究过程将遵循敏捷开发与持续集成的实践,确保系统能够快速响应高校活动管理需求,并具备可扩展、易维护的特性。
六、需求分析
用户需求方面,系统的主要使用者包括学生、教师与行政管理人员。学生侧重于报名流程的简洁性与实时性,期望能够在微信小程序内快速浏览校园活动列表、查看活动详情并完成报名表单填写;同时希望系统能够及时推送活动变更通知与签到提醒,并通过生成二维码实现现场扫码签到,避免现场排队等待。教师作为活动主办方或审批者,需要在后台对新发布的活动进行审核与发布,能够对报名人数进行预估与调整,并在活动现场通过扫码确认学生身份,从而确保参与者符合活动要求。行政管理人员则关注整体运营效率与数据透明度,期望能够在后台获取报名与签到的实时统计报表、异常情况报警以及历史数据分析,以支持后续资源分配与活动策划。除此之外,所有用户均需要在系统中获得统一的身份认证体验,避免多账号登录导致信息混乱,并且对个人信息安全与隐私保护有较高要求。
功能需求方面,系统需实现完整的用户身份管理模块,包括注册、登录、角色分配与权限控制;在活动管理模块中,教师与管理员能够创建、编辑、发布活动,并设置报名截止时间、签到窗口以及参与人数上限;报名模块需支持学生填写报名表单并提交,系统自动校验必填项与数据格式,同时记录报名时间戳;二维码生成与扫码签到模块必须能够为每位已报名学生生成唯一二维码,并在现场通过微信小程序扫码验证身份,实时更新签到状态;签到统计模块需聚合签到人数、迟到率、缺席率等指标,并支持按时间段、活动类型或班级维度进行筛选;报告与分析模块应提供可视化图表展示报名与签到趋势,并支持导出 CSV 或 Excel 文件供后续分析使用;安全与性能模块需实现 HTTPS 加密传输、数据库字段加密、Redis 缓存热点数据以及分布式事务管理,以保证系统在高并发场景下的稳定性与数据一致性。以上功能模块通过微服务架构进行拆分,前端采用微信小程序实现交互界面,后端基于 SpringBoot 提供 RESTful API,形成完整的技术闭环。
七、可行性分析
经济可行性方面,系统的开发成本主要由后端微服务架构、前端小程序实现、数据库与缓存部署以及安全加密等技术实现组成,预计初期投入约为人民币十万元至十五万元,其中包括软件许可、服务器租赁与人工成本;随后维护费用将主要涉及服务器运维、系统升级与技术支持,年均成本预计为总投入的 10% 至 15%;从效益角度看,系统能够替代传统纸质报名表和人工签到流程,显著降低纸张与打印成本、减少人力资源消耗,并通过实时数据统计提升活动组织效率,预计每年可为高校节约人力成本约五万元至八万元;此外,系统的可视化报表功能将为管理层提供决策支持,进一步优化资源配置,长期来看具备良好的投资回报率。社会可行性方面,学生群体对微信小程序的使用习惯已十分普及,系统通过一键报名与扫码签到降低了操作门槛,符合学生“移动化、即时化”的使用需求;教师与行政人员在审批与统计环节将获得更高的工作效率和数据透明度,提升管理满意度;此外,系统的安全加密与隐私保护措施符合教育部门对个人信息保护的法规要求,能够获得师生与家长的信任;从校园文化角度看,该系统能够鼓励学生积极参与各类活动,丰富校园生活,增强归属感。技术可行性方面,SpringBoot 与 SpringCloud 生态已成熟稳定,可快速构建微服务架构并支持容器化部署;微信小程序平台提供完善的 SDK 与 API,支持二维码生成、扫码验证以及统一身份认证;数据库层可采用 MySQL 或 PostgreSQL 结合 Redis 缓存,满足高并发读写需求;安全层面可利用 HTTPS、JWT 以及字段级加密技术,确保数据传输与存储的安全;在硬件与网络环境方面,高校校园网及云服务器已具备足够的带宽与计算资源,能够支持系统的部署与运行。综上所述,该项目在经济、社会与技术三方面均具备可行性,能够为高校活动管理提供高效、可靠且易于推广的解决方案。
八、功能分析
系统功能模块的设计依据需求分析结果,逻辑上可划分为用户管理模块、活动管理模块、报名与信息校验模块、二维码生成与签到验证模块、统计与报表生成模块以及通知与安全控制模块。用户管理模块负责实现学生、教师及行政人员的注册、登录以及角色分配功能,系统通过微信小程序的授权登录接口获取用户身份信息,并在后端数据库中维护用户基本资料与权限等级;该模块还需提供密码重置与账号绑定等辅助功能,以保证账户安全。活动管理模块主要服务于教师与管理员,支持活动的创建、编辑、发布及下架操作,管理员可对活动进行审核并设置报名截止时间、签到窗口以及参与人数上限;系统通过后台接口将活动信息同步至前端小程序,供学生浏览与筛选。报名与信息校验模块为学生提供报名表单填写入口,系统在提交时自动校验必填字段与数据格式,并记录报名时间戳;若出现重复报名或已过截止时间的请求,系统将返回相应错误提示。二维码生成与签到验证模块负责为每位已报名学生生成唯一二维码,并在现场通过微信小程序扫码接口完成身份验证,系统实时更新签到状态并记录签到时间;该模块需支持离线缓存与网络异常重试机制,以确保现场扫码的稳定性。统计与报表生成模块聚合报名与签到数据,提供可视化图表展示报名人数、签到率、迟到率等关键指标,并支持按时间段、活动类型或班级维度进行筛选;管理员可将报表导出为 CSV 或 Excel 格式以供后续分析。通知与安全控制模块负责系统内部的消息推送与安全管理,利用微信小程序的消息接口向用户推送活动变更、签到提醒及异常报警;同时,该模块实现 HTTPS 加密传输、JWT 认证以及数据库字段级加密,保障数据在传输与存储过程中的安全。上述各模块通过 RESTful API 进行交互,后端采用 SpringBoot 微服务架构实现业务逻辑分层,前端小程序使用原生组件完成用户界面展示与交互,从而构成完整、可维护且易于扩展的校园活动报名与签到系统。
九、数据库设计
表名:Users
字段名 | 说明 | 大小 | 类型 | 主外键 | 备注
user_id | 用户主键标识符 | 20 | VARCHAR(20) | 主键(PK)| 自动生成或业务唯一标识
openid | 微信开放平台用户唯一标识符 | 50 | VARCHAR(50) | 唯一索引| 与微信小程序关联
nickname | 微信昵称 | 50 | VARCHAR(50) | -| 用户在小程序中的显示名称
avatar_url | 头像链接地址 | 200 | VARCHAR(200) | -| 存储用户头像的 URL
gender | 性别(0 未知,1 男,2 女) | 1 | TINYINT(1) | -| 性别信息
country | 国家代码(ISO) | 10 | VARCHAR(10) | -| 用户所在国家
province | 省份/地区名称 | 50 | VARCHAR(50) | -| 用户所在省份
city | 城市名称 | 50 | VARCHAR(50) | -| 用户所在城市
表名:Roles
字段名 | 说明 | 大小 | 类型 | 主外键 | 备注
role_id | 角色主键标识符 | 20 | VARCHAR(20) | 主键(PK)| 自动生成或业务唯一标识
role_name | 角色名称(如学生、教师、管理员) | 30 | VARCHAR(30) | -| 唯一索引
表名:UserRoles
字段名 | 说明 | 大小 | 类型 | 主外键 | 备注
user_role_id | 用户角色关联主键标识符 | 20 | VARCHAR(20) | 主键(PK)| 自动生成
user_id | 用户标识符(外键) | 20 | VARCHAR(20) | 外键(FK)→Users.user_id| 关联用户表
role_id | 角色标识符(外键) | 20 | VARCHAR(20) | 外键(FK)→Roles.role_id| 关联角色表
表名:Activities
字段名 | 说明 | 大小 | 类型 | 主外键 | 备注
activity_id | 活动主键标识符 | 20 | VARCHAR(20) | 主键(PK)| 自动生成或业务唯一标识
title | 活动标题 | 100 | VARCHAR(100) | -| 活动名称
description | 活动简介/详细说明 | 500 | TEXT | -| 活动内容描述
start_time | 开始时间戳(UNIX 时间) | 20 | BIGINT(20) | -| 活动开始时间
end_time | 结束时间戳(UNIX 时间) | 20 | BIGINT(20) | -| 活动结束时间
location | 举办地点描述 | 200 | VARCHAR(200) | -| 活动地点
capacity | 容纳人数上限 | 10 | INT(10) UNSIGNED | -| 最大报名人数
created_by | 创建者用户标识符(外键) | 20 | VARCHAR(20) | 外键(FK)→Users.user_id| 发起人
status | 活动状态(0 待审核,1 已发布,2 已结束,3 已取消) | 1 | TINYINT(1) | -| 活动当前状态
表名:Registrations
字段名 | 说明 | 大小 | 类型 | 主外键 | 备注
registration_id | 报名主键标识符 | 20 | VARCHAR(20) | 主键(PK)| 自动生成或业务唯一标识
user_id | 报名用户标识符(外键) | 20 | VARCHAR(20) | 外键(FK)→Users.user_id| 关联用户表
activity_id | 报名对应活动标识符(外键) | 20 | VARCHAR(20) | 外键(FK)→Activities.activity_id| 关联活动表
status | 报名状态(0 已报名,1 已确认,2 已取消) | 1 | TINYINT(1) | -| 当前报名状态
created_at | 报名时间戳(UNIX 时间) | 20 | BIGINT(20) | -| 报名创建时间
表名:SignIns
字段名 | 说明 | 大小 | 类型 | 主外键 | 备注
sign_in_id | 签到主键标识符 | 20 | VARCHAR(20) | 主键(PK)| 自动生成或业务唯一标识
registration_id | 对应报名记录标识符(外键) | 20 | VARCHAR(20) | 外键(FK)→Registrations.registration_id| 关联报名表
sign_in_time | 签到时间戳(UNIX 时间) | 20 | BIGINT(20) | -| 实际签到时间
表名:Notifications
字段名 | 说明 | 大小 | 类型 | 主外键 | 备注
notification_id | 通知主键标识符 | 20 | VARCHAR(20) | 主键(PK)| 自动生成或业务唯一标识
user_id | 接收者用户标识符(外键) | 20 | VARCHAR(20) | 外键(FK)→Users.user_id| 关联用户表
activity_id | 与通知相关的活动标识符(可为空) | 20 | VARCHAR(20) | 外键(FK)→Activities.activity_id| 关联活动表
title | 通知标题 | 100 | VARCHAR(100) | -| 通知主题
content | 通知内容 | 500 | TEXT | -| 通知正文
created_at | 创建时间戳(UNIX 时间) | 20 | BIGINT(20) | -| 通知生成时间
status | 阅读状态(0 未读,1 已读) | 1 | TINYINT(1) | -| 是否已阅读
上述表结构遵循第一范式至第三范式,避免数据冗余并保证数据一致性。每个表的主键均为唯一标识符,外键通过约束实现表间关联,字段类型与大小根据实际业务需求进行合理设定。
十、建表语句
CREATE DATABASE IF NOT EXISTS campus_activity CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE campus_activity;
-- 用户表
CREATE TABLE Users (
user_id VARCHAR(20) NOT NULL,
openid VARCHAR(50) NOT NULL,
nickname VARCHAR(50),
avatar_url VARCHAR(200),
gender TINYINT(1) DEFAULT 0,
country VARCHAR(10),
province VARCHAR(50),
city VARCHAR(50),
PRIMARY KEY (user_id),
UNIQUE KEY uk_openid (openid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 角色表
CREATE TABLE Roles (
role_id VARCHAR(20) NOT NULL,
role_name VARCHAR(30) NOT NULL,
PRIMARY KEY (role_id),
UNIQUE KEY uk_role_name (role_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 用户角色关联表
CREATE TABLE UserRoles (
user_role_id VARCHAR(20) NOT NULL,
user_id VARCHAR(20) NOT NULL,
role_id VARCHAR(20) NOT NULL,
PRIMARY KEY (user_role_id),
KEY idx_user (user_id),
KEY idx_role (role_id),
CONSTRAINT fk_ur_user FOREIGN KEY (user_id) REFERENCES Users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_ur_role FOREIGN KEY (role_id) REFERENCES Roles(role_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 活动表
CREATE TABLE Activities (
activity_id VARCHAR(20) NOT NULL,
title VARCHAR(100) NOT NULL,
description TEXT,
start_time BIGINT(20) NOT NULL,
end_time BIGINT(20) NOT NULL,
location VARCHAR(200),
capacity INT UNSIGNED DEFAULT 0,
created_by VARCHAR(20) NOT NULL,
status TINYINT(1) DEFAULT 0,
PRIMARY KEY (activity_id),
KEY idx_created_by (created_by),
CONSTRAINT fk_act_creator FOREIGN KEY (created_by) REFERENCES Users(user_id) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 报名表
CREATE TABLE Registrations (
registration_id VARCHAR(20) NOT NULL,
user_id VARCHAR(20) NOT NULL,
activity_id VARCHAR(20) NOT NULL,
status TINYINT(1) DEFAULT 0,
created_at BIGINT(20) NOT NULL,
PRIMARY KEY (registration_id),
KEY idx_reg_user (user_id),
KEY idx_reg_act (activity_id),
CONSTRAINT fk_reg_user FOREIGN KEY (user_id) REFERENCES Users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_reg_act FOREIGN KEY (activity_id) REFERENCES Activities(activity_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 签到表
CREATE TABLE SignIns (
sign_in_id VARCHAR(20) NOT NULL,
registration_id VARCHAR(20) NOT NULL,
sign_in_time BIGINT(20) NOT NULL,
PRIMARY KEY (sign_in_id),
KEY idx_si_reg (registration_id),
CONSTRAINT fk_si_reg FOREIGN KEY (registration_id) REFERENCES Registrations(registration_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 通知表
CREATE TABLE Notifications (
notification_id VARCHAR(20) NOT NULL,
user_id VARCHAR(20) NOT NULL,
activity_id VARCHAR(20),
title VARCHAR(100) NOT NULL,
content TEXT,
created_at BIGINT(20) NOT NULL,
status TINYINT(1) DEFAULT 0,
PRIMARY KEY (notification_id),
KEY idx_not_user (user_id),
KEY idx_not_act (activity_id),
CONSTRAINT fk_not_user FOREIGN KEY (user_id) REFERENCES Users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_not_act FOREIGN KEY (activity_id) REFERENCES Activities(activity_id) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻