ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SpringBoot+Vue的在线视频课程网站计算机毕业设计(源码+lw+部署文档+讲解等)

SpringBoot+Vue的在线视频课程网站计算机毕业设计(源码+lw+部署文档+讲解等) 博主介绍✌ 专注于VUE,小程序安卓Java,python,物联网专业有18年开发经验长年从事毕业指导项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题我会尽力帮助你。一、研究目的本研究旨在构建一套基于SpringBoot与Vue技术栈的在线视频课程平台解决当前在线教育系统中存在的技术耦合度高、性能瓶颈明显、用户体验欠佳等问题。通过采用SpringBoot作为后端服务框架可实现微服务化部署、模块化管理以及高效的数据持久化而Vue则提供了响应式前端交互能力能够实现流畅的页面渲染与动态组件更新从而提升整体系统的可维护性与可扩展性。研究将重点聚焦于视频流媒体处理、课程资源管理、用户身份认证与权限控制、学习进度跟踪以及数据统计分析等核心功能模块以实现从内容上传到学习交互的完整闭环。在技术实现层面本研究计划引入WebSocket技术实现实时视频直播与弹幕互动利用Redis缓存热点数据以降低数据库压力采用JWT进行无状态身份验证以提升系统安全性并通过Docker容器化部署实现环境一致性与快速迭代。前端将采用Vue Router实现单页应用路由管理Vuex进行状态管理并通过Element UI组件库构建统一的界面风格后端则利用Spring Security进行权限校验MyBatis-Plus简化数据库操作并结合Swagger文档化接口。通过上述技术组合平台能够在保证高并发访问下保持低延迟响应并支持多终端适配与自适应布局。研究的最终目标是构建一套可推广、可复制的在线视频课程系统原型验证其在教学管理效率、学习效果提升以及资源共享方面的实际价值。通过对比传统教学模式本平台预期能够降低教育成本、扩大受众范围并为高校与企业培训提供灵活、高效的技术支持。与此同时研究也将探讨系统可持续发展路径包括微服务治理、持续集成/持续交付CI/CD流程以及性能监控与自动化运维方案以确保平台在长期运营中的稳定性与可维护性。二、研究意义本研究所提出的基于SpringBoot与Vue技术栈的在线视频课程平台具有重要的理论与实践意义。首先在信息化时代背景下传统教育模式面临着资源分配不均、教学效率低下以及学习体验单一等挑战而本平台通过模块化设计与微服务架构实现了高可扩展性与灵活部署可为不同规模的教育机构提供定制化解决方案从而有效缓解教育资源短缺问题。其次采用SpringBoot后端框架结合MyBatis-Plus、Redis以及WebSocket等技术能够在保证系统性能的前提下实现高并发视频流传输与实时交互为在线学习提供流畅且低延迟的用户体验Vue前端则通过响应式数据绑定与组件化开发提升了界面交互性与可维护性进一步增强了平台的易用性与美观度。再次本研究通过引入JWT身份验证、Spring Security权限管理以及Docker容器化部署等手段构建了一个安全、可靠且易于运维的系统架构为后续大规模推广与持续迭代提供了技术保障。再者平台内置的学习进度跟踪与数据统计模块可为教师与学生提供精准的学习反馈与评估依据从而支持个性化教学与学习路径优化提升教学质量与学习成效。最后研究成果在学术层面上丰富了基于微服务架构的在线教育系统设计范式为相关领域的技术创新提供了可借鉴的案例在社会层面上则有助于推动教育公平、促进终身学习与数字化转型具有显著的社会价值与应用前景。三、国内外研究现状国内外学术界对在线视频课程系统的研究主要集中在平台架构设计、视频流媒体技术、学习数据分析与个性化推荐以及安全与性能优化等方向。近年来随着云计算与微服务技术的成熟国外研究者普遍采用基于容器化部署的微服务架构以实现系统的弹性伸缩和模块化维护国内高校与科研机构亦在此基础上开展了大量实验验证工作探讨如何将SpringBoot等轻量级后端框架与Vue等响应式前端技术结合以降低开发成本并提升用户体验。视频流技术方面国际研究重点关注自适应比特率流ABR与低时延传输协议如WebRTC、Low-Latency HLS的实现与优化国内学者则在此基础上提出了基于CDN缓存与边缘计算的多源融合方案以解决大规模并发访问导致的带宽瓶颈。学习数据分析与个性化推荐是另一重要研究热点国外研究常利用深度学习模型对学生行为进行预测国内学者则结合知识图谱与因子分解机构建了面向中小学课程的精准推荐系统。安全与性能方面国际上已形成基于OAuth2.0与JWT的统一身份认证框架国内研究者进一步完善了基于Spring Security的细粒度权限控制并通过Redis缓存热点数据与使用异步消息队列提升系统吞吐量。总体来看国内外在技术选型、架构设计与算法创新方面形成了相互补充的研究生态为构建高效、安全、可持续发展的在线视频课程平台奠定了坚实基础。四、预期达到目标及解决的关键问题预期目标在于构建一套基于SpringBoot与Vue技术栈的在线视频课程平台能够实现从课程内容管理、视频流传输、实时交互到学习数据分析的完整闭环并在性能、安全与可维护性方面达到国内外先进水平。具体而言系统应支持多路高清视频直播与点播采用自适应比特率技术以降低带宽占用并提升观看体验前端需实现响应式布局与动态组件化以兼容桌面、移动及平板等多终端后端则通过微服务化部署实现模块解耦并利用Redis缓存热点数据与WebSocket实现低延迟实时交互在学习数据层面平台应能够采集学生点击、停留时间、答题记录等行为数据并基于机器学习模型提供个性化课程推荐与学习路径规划安全层面需实现JWT无状态身份认证与细粒度权限控制并通过Docker容器化部署保证环境一致性与快速迭代。通过上述目标的实现平台将为教育机构提供可扩展、易维护且高效的在线教学解决方案并为学术研究提供可复现的技术框架。关键问题主要集中在以下四个方面一是视频流媒体传输的实时性与稳定性在高并发访问情况下如何通过CDN缓存与边缘计算降低延迟并保证码率一致二是微服务架构下的服务治理与监控如何实现跨服务调用链路追踪、熔断降级以及弹性伸缩以满足业务增长需求三是学习数据分析与个性化推荐的算法精度与可解释性如何在保证用户隐私的前提下利用知识图谱与因子分解机提升推荐效果四是系统安全与合规性如何在分布式环境中统一身份认证、权限校验以及日志审计并满足教育数据保护法规。针对上述问题本研究将分别从技术实现、实验验证与理论分析三方面展开深入探讨以期为在线视频课程平台的设计与实践提供系统化的技术路径与经验总结。五、研究内容本研究围绕构建基于SpringBoot与Vue技术栈的在线视频课程平台展开整体研究内容可划分为需求分析、系统设计、关键技术实现、性能评估与系统部署四大模块。首先在需求分析阶段通过访谈与问卷收集高校教师与学生对在线教学的功能诉求归纳出课程管理、视频直播与点播、实时互动、学习跟踪以及数据统计等核心功能并结合教育行业规范确定安全性、可扩展性与兼容性要求。随后在系统设计阶段采用分层架构将前端展示层、业务逻辑层与数据访问层进行模块化划分并利用UML类图与时序图描述系统组件间的交互关系微服务化设计将课程服务、用户服务、视频服务与统计服务拆分为独立容器以实现弹性伸缩和持续集成。关键技术实现环节重点聚焦于四个子系统一是前端交互子系统利用Vue框架搭建响应式单页应用采用Element UI组件库构建统一界面并通过Vuex管理全局状态实现课程列表、视频播放器与弹幕等功能二是后端业务子系统基于SpringBoot实现RESTful API结合MyBatis-Plus简化数据库操作使用Redis缓存热点数据并通过WebSocket实现实时弹幕与聊天室三是视频流媒体子系统采用HLS或DASH协议进行自适应码率切片并通过CDN边缘节点分发四是学习数据分析子系统采集学生行为日志并利用Spark或Flink进行批量与流式处理构建知识图谱与因子分解模型为课程推荐提供算法支持。性能评估阶段将采用JMeter、Locust等工具模拟并发访问测量系统吞吐量、延迟与资源占用并通过A/B测试验证推荐算法的有效性安全评估则结合OWASP Top 10进行渗透测试与漏洞扫描确保身份认证、权限控制与数据传输的安全。最后在系统部署阶段将所有微服务打包为Docker镜像利用Kubernetes实现容器编排与自动扩缩容并通过CI/CD流水线实现持续交付。通过上述研究内容本平台将实现从课程上传到学习评估的全流程闭环并在性能、可维护性与用户体验方面达到国内外先进水平。六、需求分析用户需求方面教师端主要关注课程内容的创建与管理、学生学习进度的监控以及教学效果的评估。教师需要能够通过友好的界面上传视频、音频与教材文件设置章节结构与课件顺序并对课程进行版本控制以便在教学过程中随时调整或更新。与此同时教师还期望系统能够实时展示学生的观看记录、答题情况与互动频次从而对教学方法进行及时优化。学生端则侧重于学习体验的流畅性与交互性期望能够在多终端上顺畅观看课程视频参与弹幕、聊天室与问答等实时互动并通过学习进度面板随时查看已完成章节、待复习内容与个人成绩。学生还需要能够保存收藏的课程资源、下载离线学习包并在完成学时后获取电子证书。管理员端则关注系统整体运营与维护期望能够统一管理教师与学生账户、监控系统健康状态、配置权限策略以及生成运营报表以支持平台的持续发展与合规运营。上述用户需求体现了多角色协同工作场景下对功能完整性、交互友好性与数据安全性的共同诉求。功能需求方面系统首先必须实现统一的身份认证与授权机制采用JWT或OAuth2.0协议确保无状态登录同时通过Spring Security进行细粒度权限控制以满足教师、学生与管理员不同的操作范围。课程管理模块需支持课程信息的增删改查、章节拆分与多媒体资源关联并提供版本历史记录以追溯修改轨迹。视频流媒体子系统必须实现自适应比特率切片HLS/DASH与低延迟直播WebRTC或WebSocket并通过CDN边缘节点分发以降低带宽成本与提升观看体验。实时交互子系统需提供弹幕、聊天室与问答功能支持文本、表情与文件上传并保证消息的即时性与可靠投递。学习进度跟踪模块应记录学生每一次观看时长、章节完成状态以及测验成绩并通过RESTful接口向前端展示进度面板。统计分析与报表子系统需要聚合学习数据生成课程受众分布、学习时长分布、答题正确率等指标并通过图表展示给教师与管理员。通知与消息推送功能需支持站内消息、邮件与短信以提醒用户重要事件或课程更新。最后系统安全层面必须实现HTTPS加密传输、数据库字段加密以及日志审计确保个人信息与教学内容的机密性与完整性。通过上述功能模块的协同工作平台能够满足多角色用户在内容创作、学习体验与运营管理方面的综合需求。七、可行性分析经济可行性方面本平台的开发与运营成本相对较低主要支出集中在服务器租赁、CDN带宽、域名与证书采购以及后期运维人员工资。由于采用SpringBoot与Vue等开源技术栈软件许可费用为零且社区生态成熟可快速获取技术支持与插件资源从而降低研发周期与人力成本。平台上线后可通过课程订阅、增值服务如专业证书、企业培训套餐以及广告分成实现多元化收入模式预计在第一年内实现收支平衡并在第三年实现盈利。与此同时平台的可扩展性使得未来可根据市场需求增加新功能或服务进一步提升收益潜力。综合来看经济可行性良好投资回报周期短且风险可控。社会可行性方面本平台满足了当前教育数字化转型的迫切需求能够突破地域与时间限制为偏远地区学生提供优质课程资源从而促进教育公平。平台支持多语言与无障碍功能符合残障人士学习需求提升社会包容性。通过数据分析与个性化推荐可帮助学生精准定位学习路径提高学习效率与成效符合终身学习理念。平台还可为企业提供培训解决方案促进人才培养与职业发展具有广泛的社会价值。政府对在线教育的政策扶持与补贴也为平台运营提供了有利环境从社会角度来看本项目具备高度可接受性与推广前景。技术可行性方面SpringBoot与Vue技术栈已在众多大型互联网项目中得到验证具备成熟的框架支持与丰富的生态插件可快速实现微服务化部署、RESTful接口、前后端分离以及响应式交互。视频流媒体采用HLS/DASH与WebRTC技术已被广泛应用于直播与点播场景能够满足自适应码率与低延迟需求。Redis缓存与WebSocket实现的实时交互功能已在在线教育平台中得到实践性能可靠。系统安全方面可通过JWT身份认证、Spring Security权限控制以及HTTPS加密传输等措施保障数据安全。鉴于上述技术均具备成熟实现方案且团队具备相应技术背景与经验技术可行性高度可行。八、功能分析系统功能模块的设计以满足教师、学生与管理员三类主体在在线教学过程中的多维需求为核心逻辑上可划分为用户管理、课程与资源管理、视频流媒体服务、实时交互与弹幕服务、学习进度跟踪与评估、个性化推荐与分析以及系统运维与安全保障等八大模块。首先用户管理模块负责统一处理教师、学生及管理员的身份认证与授权采用JWT或OAuth2.0协议实现无状态登录并通过Spring Security细粒度权限控制实现角色分离该模块还支持账号注册、密码重置、社交登录以及多因素身份验证以保障系统安全与用户体验。其次课程与资源管理模块为教师提供课程创建、章节划分、教材上传与版本控制等功能支持多媒体资源视频、音频、PDF等的关联与管理教师可通过可视化界面对课程进行编辑、发布或下架操作同时系统记录所有修改历史以便追溯。随后视频流媒体服务模块负责将教师上传的视频进行切片编码为HLS或DASH格式并通过CDN边缘节点分发以实现自适应码率与低延迟播放该模块还支持点播缓存预热与直播推流利用WebRTC或低延迟HLS实现实时直播功能并提供录制存档供后续点播。接下来实时交互与弹幕服务模块为学生提供聊天室、弹幕以及问答等即时互动功能采用WebSocket实现双向通信支持文本、表情与文件传输并通过消息队列保证消息可靠投递该模块还可对弹幕进行内容审核与限速处理以防止恶意刷屏。学习进度跟踪与评估模块则记录学生每一次观看时长、章节完成状态以及测验成绩生成学习日志并通过RESTful接口供前端展示教师可在此模块查看学生的学习曲线、答题正确率与知识点掌握情况从而进行针对性辅导。个性化推荐与分析模块基于采集的学习行为数据利用知识图谱与因子分解机构建推荐模型为学生提供课程、章节或练习的个性化推送同时该模块还提供可视化报表展示课程受众分布、学习时长分布与热点问题等指标为平台运营与内容优化提供决策支持。系统运维与安全保障模块负责监控服务健康状态、日志审计与异常告警利用Prometheus与Grafana实现实时监控同时通过HTTPS加密传输、数据库字段加密以及定期安全扫描确保数据机密性与完整性该模块还支持自动化部署流水线利用Docker容器化与Kubernetes编排实现弹性伸缩与灰度发布。上述八大功能模块在系统架构层面通过RESTful API、消息总线与微服务治理相互协作形成完整的在线教学闭环从课程创建到学习评估再到运营分析与安全保障满足多角色用户在教学、学习与管理过程中的全部需求。九、数据库设计字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 用户ID | 20 | VARCHAR(20) | PK | 主键唯一标识用户username | 登录名 | 50 | VARCHAR(50) | - | 必填唯一约束password_hash | 密码哈希值 | 255 | VARCHAR(255) | - | 存储加密后的密码email | 邮箱地址 | 100 | VARCHAR(100) | - | 用于找回密码与通知created_at | 创建时间 | - | DATETIME | - | 自动记录注册时间updated_at | 更新时间 | - | DATETIME | - | 自动更新修改时间字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 角色ID | 20 | VARCHAR(20) | PK | 主键唯一标识角色name | 角色名称 | 50 | VARCHAR(50) | - | 如教师、学生、管理员description | 描述 | 200 | VARCHAR(200) | - | 对角色的说明字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---user_id | 用户ID | 20 | VARCHAR(20) | FK → Users(id) | 外键关联用户表role_id | 角色ID | 20 | VARCHAR(20) | FK → Roles(id) | 外键关联角色表字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 课程ID | 20 | VARCHAR(20) | PK | 主键唯一标识课程title | 课程标题 | 200 | VARCHAR(200) | - | 必填字段description | 课程简介 | 500 | VARCHAR(500) | - | 可选字段teacher_id | 教师ID | 20 | VARCHAR(20) | FK → Users(id) | 外键指向教师用户created_at | 创建时间 | - | DATETIME | - | 自动记录创建时间updated_at | 更新时间 | - | DATETIME | - | 自动更新修改时间字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 节点ID | 20 | VARCHAR(20) | PK | 主键唯一标识章节course_id | 所属课程ID | 20 | VARCHAR(20) | FK → Courses(id) | 外键关联课程title | 节点标题 | 200 | VARCHAR(200) | - | 必填字段order_index | 顺序索引 | INT | INT(11) | - | 用于章节排序字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 媒体ID | 20 | VARCHAR(20) | PK | 主键唯一标识资源section_id | 所属章节ID | 20 | VARCHAR(20) | FK → CourseSections(id) | 外键关联章节type | 资源类型 | 10 | VARCHAR(10) | - | 如video、audio、pdfurl | 存储地址或URL | 255 | VARCHAR(255) | - | 对应云存储路径size_bytes | 文件大小字节 | INT(11) | INT(11) | - | 文件大小字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 直播会话ID | 20 | VARCHAR(20) | PK | 主键唯一标识直播course_id | 所属课程ID | 20 | VARCHAR(20) | FK → Courses(id) | 外键关联课程start_time | 开始时间 | - | DATETIME | - |end_time | 结束时间 | - | DATETIME | - |stream_url| 推流地址 | 255| VARCHAR(255)| - |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 消息ID | 20 | VARCHAR(20) | PK | 主键唯一标识聊天消息session_id| 会话ID直播或课程| 20 | VARCHAR(20) | FK → LiveSessions(id) 或 Courses(id) | 外键关联会话user_id | 发送者ID | 20 | VARCHAR(20) | FK → Users(id) | 外键关联用户content | 消息内容 | 1000| VARCHAR(1000)| - |sent_at | 发送时间 | - | DATETIME| - |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 学习进度ID | 20 | VARCHAR(20) | PK | 主键唯一标识记录student_id| 学生ID | 20 | VARCHAR(20) | FK → Users(id) | 外键关联学生section_id| 章节ID | 20 | VARCHAR(20) | FK → CourseSections(id)| 外键关联章节watched_seconds| 已观看秒数| INT(11)| INT(11)| - |completed | 是否完成 | BOOLEAN| TINYINT(1)| - |last_accessed| 最后访问时间 | - | DATETIME| - |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 报名ID | 20 | VARCHAR(20) | PK | 主键唯一标识报名记录student_id| 学生ID | 20 | VARCHAR(20) | FK → Users(id) | 外键关联学生course_id | 课程ID | 20 | VARCHAR(20) | FK → Courses(id)| 外键关联课程enrolled_at| 报名时间 | - | DATETIME| - |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 系统设置ID | 20 | VARCHAR(20) | PK | 主键唯一标识设置记录key | 键名 | 100| VARCHAR(100)| - |value | 值 | 500| VARCHAR(500)| - |description| 描述 | 200| VARCHAR(200)| - |以上表结构遵循第一范式与第二范式所有非主键字段均完全依赖于主键外键约束确保数据完整性字段类型与长度设置兼顾性能与存储效率。十、建表语句CREATE TABLE users (id varchar(20) NOT NULL,username varchar(50) NOT NULL,password_hash varchar(255) NOT NULL,email varchar(100) NOT NULL,created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (id),UNIQUE KEY idx_users_username (username),UNIQUE KEY idx_users_email (email)) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE roles (id varchar(20) NOT NULL,name varchar(50) NOT NULL,description varchar(200),PRIMARY KEY (id),UNIQUE KEY idx_roles_name (name)) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE user_roles (user_id varchar(20) NOT NULL,role_id varchar(20) NOT NULL,PRIMARY KEY (user_id,role_id),CONSTRAINT fk_user_roles_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_user_roles_role FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE courses (id varchar(20) NOT NULL,title varchar(200) NOT NULL,description varchar(500),teacher_id varchar(20) NOT NULL,created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (id),CONSTRAINT fk_courses_teacher FOREIGN KEY (teacher_id) REFERENCES users(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE course_sections (id varchar(20) NOT NULL,course_id varchar(20) NOT NULL,title varchar(200) NOT NULL,order_index int(11) NOT NULL,PRIMARY KEY (id),KEY idx_course_sections_course_id (course_id),CONSTRAINT fk_course_sections_course FOREIGN KEY (course_id) REFERENCES courses(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE media_resources (id varchar(20) NOT NULL,section_id varchar(20) NOT NULL,type varchar(10) NOT NULL,url varchar(255) NOT NULL,size_bytes int(11) NOT NULL,PRIMARY KEY (id),KEY idx_media_resources_section_id (section_id),CONSTRAINT fk_media_resources_section FOREIGN KEY (section_id) REFERENCES course_sections(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE live_sessions (id varchar(20) NOT NULL,course_id varchar(20) NOT NULL,start_time datetime NOT NULL,end_time datetime,stream_url varchar(255),PRIMARY KEY (id),KEY idx_live_sessions_course_id (course_id),CONSTRAINT fk_live_sessions_course FOREIGN KEY (course_id) REFERENCES courses(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE messages (id varchar(20) NOT NULL,session_id varchar(20) NOT NULL,user_id varchar(20) NOT NULL,content varchar(1000) NOT NULL,sent_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id),KEY idx_messages_session_id (session_id),KEY idx_messages_user_id (user_id),CONSTRAINT fk_messages_session FOREIGN KEY (session_id) REFERENCES live_sessions(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_messages_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE learning_progress (id varchar(20) NOT NULL,student_id varchar(20) NOT NULL,section_id varchar(20) NOT NULL,watched_seconds int(11) NOT NULL DEFAULT 0,completed tinyint(1) NOT NULL DEFAULT 0,last_accessed datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (id),KEY idx_learning_progress_student_id (student_id),KEY idx_learning_progress_section_id (section_id),CONSTRAINT fk_learning_progress_student FOREIGN KEY (student_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_learning_progress_section FOREIGN KEY (section_id) REFERENCES course_sections(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE enrollments (id varchar(20) NOT NULL,student_id varchar(20) NOT NULL,course_id varchar(20) NOT NULL,enrolled_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id),KEY idx_enrollments_student_id (student_id),KEY idx_enrollments_course_id (course_id),CONSTRAINT fk_enrollments_student FOREIGN KEY (student_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_enrollments_course FOREIGN KEY (course_id) REFERENCES courses(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE TABLE system_settings (id varchar(20) NOT NULL,key varchar(100) NOT NULL,value varchar(500),description varchar(200),PRIMARY KEY (id),UNIQUE KEY idx_system_settings_key (key)) ENGINEInnoDB DEFAULT CHARSETutf8mb4;文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方获取联系方式
返回列表