1 绪论
1.1 研究背景
随着全民健身意识的不断提升,游泳作为一项广受欢迎的体育运动,其参与人数逐年增长。传统游泳馆在运营管理上多依赖人工记录与线下处理,存在效率低、易出错、信息不透明等问题。尤其在场地预约、课程安排、用户反馈等环节,缺乏统一的信息管理手段,难以满足现代用户对便捷性与服务质量的期待。同时,中小型游泳场馆受限于技术能力与成本投入,往往无法引入复杂的商业软件,导致管理方式长期滞后,影响整体运营效能。
在此背景下,基于轻量级、高效率的开发框架构建一套适用于游泳馆日常业务的信息化平台,成为提升服务能力和管理水平的现实需求。Spring Boot凭借其快速开发、配置简洁、生态成熟等优势,为实现此类应用提供了良好基础。通过整合用户管理、场次调度、课程报名、投诉处理等核心功能,可有效支撑游泳馆从传统模式向数字化管理过渡,契合当前体育服务行业提质增效的发展趋势。
1.2 研究意义
设计并实现面向游泳馆的信息化管理平台,有助于规范业务流程,减少人为干预带来的误差,提高场地与人力资源的利用效率。会员可通过线上方式完成预约、报名、评价等操作,获得更流畅的服务体验;教练能够集中管理课程与学员信息,专注教学本身;管理人员则能实时掌握运营数据,及时响应用户需求与运营问题。这种全流程线上化不仅优化了内部协作机制,也增强了服务的透明度与可追溯性。
此外,该实践探索为中小型体育场馆提供了一种低成本、易部署、易维护的数字化转型方案。相较于大型商业系统,其功能聚焦、结构清晰、扩展灵活,更适合资源有限但需提升管理效能的实体场馆。研究成果不仅具有实际应用价值,也为同类公共服务场所的信息化建设提供了可借鉴的技术路径与实施经验,推动体育服务向规范化、高效化方向持续发展。
1.3 国内外研究现状
1.3.1 国内研究现状
国内相关研究与应用起步稍晚,但发展迅速。近年来,随着全民健身战略推进,多地体育场馆开始尝试数字化改造。北京部分高校游泳馆引入校园一卡通联动机制,实现身份识别与费用结算一体化;上海一些商业健身俱乐部开发自有App,整合泳池预约、私教课程、健康档案等功能,注重用户体验与服务黏性。在学术层面,已有研究聚焦于体育场馆管理信息系统的架构设计、权限控制策略及业务流程优化,部分高校课题组基于Java EE或Spring框架构建原型系统,验证了技术可行性。然而,多数现有方案或偏向大型场馆的复杂需求,或局限于单一功能模块,针对中小型游泳馆轻量级、低成本、全流程覆盖的解决方案仍显不足。因此,结合实际运营场景,构建结构合理、功能完整且易于落地的信息管理平台,具有明确的现实意义与推广价值。
1.3.2 国外研究现状
在国内外体育场馆信息化管理领域,近年来已有不少探索与实践。国外发达国家较早将信息技术引入公共体育服务场景。例如,美国部分城市游泳中心采用集成化的会员管理平台,支持在线预订、课程注册及支付功能,并与市政健康数据库对接,实现用户健康数据的辅助参考。澳大利亚悉尼奥林匹克公园水上运动中心则通过定制化软件对泳道使用情况进行动态调度,结合日历视图展示开放时段,提升场地利用率。欧洲如德国和荷兰的社区泳馆普遍部署了基于Web的预约系统,用户可通过个人账户查看历史记录、接收通知并参与满意度调查,管理端则能实时监控预约状态与设备维护周期,形成较为成熟的运营闭环。
2 相关技术介绍
2.1 Java语言
Java是一种广泛应用于企业级软件开发的面向对象编程语言,具有平台无关性、安全性高、稳定性强等优点1。通过JVM(Java虚拟机)机制,Java实现了"一次编写,到处运行"的特性,极大地提升了代码的可移植性和复用性,其丰富的类库支持和成熟的生态系统,使得Java在Web应用、分布式系统及大型后台服务开发中占据主导地位2。在游泳馆系统中,Java作为主要开发语言,能够实现高效的服务器端逻辑处理和数据管理,为系统的功能实现提供了坚实的基础,同时Java的多线程和网络编程能力有助于系统的高并发处理,为多个用户提供服务。
2.2 SpringBoot框架
SpringBoot是一个开源框架,可以快速构建基于Spring的应用程序,通过简化配置和提供开箱即用的特性,极大地提升了开发效率3。SpringBoot框架安排了一系列默认的配置,支持开展自动化配置,减少了应用启动的复杂性,并集成嵌入式Web服务器,让开发者可以不依赖外部独立运行Java应用,无需借助外部容器4。SpringBoot框架的应用为游泳馆系统的后端开发提供了强大的支持。开发者使用SpringBoot框架可以轻松创建RESTful风格的API,与前端进行数据交互,支持各种业务操作。数据访问层使用Spring Data JPA简单集成数据库,与MySQL进行操作,实现数据的持久化。安全管理方面利用Spring Security提供用户身份验证和授权功能,确保数据访问的安全性。
2.3 MySQL数据库
MySQL是一款流行的开源关系型数据库管理系统,因其性能稳定、易于使用、社区活跃而被广泛应用于各类Web应用系统中,支持标准SQL语句,即以结构化查询语言为基础,通过表格的形式存储数据,具备良好的事务处理能力和多用户并发访问能力5。同时MySQL占用资源较少,适合中小型项目的数据库需求。本系统采用MySQL作为核心数据存储工具,负责管理游泳馆系统中的用户信息、业务数据和操作日志等关键信息,通过合理的数据库设计和优化,保障数据的安全性和一致性,并且MySQL支持对多用户的高并发操作,能够快速处理系统中的各种数据查询需求,为后端提供所需的数据服务6。
2.4 Vue框架
Vue 是一款轻量级、渐进式的前端JavaScript框架,专注于构建用户界面,具有学习成本低、开发效率高、组件化设计良好等特点,能够快速实现响应式数据绑定和动态页面交互7。Vue支持模块化开发,并与现代前端构建工具,如Webpack、Vite,兼容良好,适用于开发高性能、易维护的单页面应用(SPA)。在游泳馆系统中,Vue框架被用于实现系统的前端界面,提供友好的交互体验,提升系统的交互体验与开发效率8。
2.5 B/S模式
B/S(Browser/Server)架构是一种基于浏览器的三层体系结构,用户通过浏览器即可访问服务器端的应用程序和数据资源,无需安装额外客户端,具有部署简单、维护方便、跨平台兼容性强等优势9。B/S架构降低了用户的客户端配置要求,用户只需要使用浏览器即可访问应用。该架构下,业务逻辑主要集中在服务器端处理,前端仅负责展示与交互,有利于提升系统的可扩展性和安全性10。本游泳馆系统基于B/S架构进行设计与开发,使得系统能够在不同设备和操作系统上便捷访问,增强系统的可用性与灵活性。
3 系统分析
3.1 系统可行性
3.1.1 技术可行性
系统采用Spring Boot作为后端核心框架,其生态成熟、文档完善、社区活跃,具备快速开发与部署能力。数据持久层使用MyBatis,能够灵活操作关系型数据库;前端界面基于Thymeleaf模板引擎与Bootstrap构建,兼顾开发效率与页面美观。所选技术栈均为当前主流且稳定的技术方案,开发门槛适中,维护成本较低,完全满足游泳馆管理平台的功能需求与性能要求。
3.1.2 经济可行性
系统开发主要依赖开源技术,无需支付高昂的商业软件授权费用。部署环境可运行于普通服务器或虚拟主机,硬件投入成本可控。对于中小型游泳场馆而言,该平台能有效替代人工登记、纸质排课等传统方式,降低长期运营中的人力与管理成本。同时,线上预约与课程报名机制有助于提升场地利用率和用户付费转化率,带来潜在收益增长。
3.1.3 操作可行性
界面设计遵循简洁直观原则,会员用户可通过常规浏览器完成注册、预约、报名等操作,无需专业培训;教练用户仅需维护个人课程信息,操作流程清晰;管理员功能模块分类明确,常用操作如审核、发布公告、管理场次等均提供便捷入口。整体交互逻辑贴合实际业务习惯,各类用户均可快速上手,具备良好的可用性与接受度。
3.2 系统功能需求
根据用户在系统中的操作权限以及功能需求的不同,本游泳馆系统在设计过程中,将用户角色划分为三大主要类别,分别为会员用户、教练用户以及系统管理员。这三种角色在系统中分别对应不同的功能模块,并拥有相应的操作权限,以实现对各类业务流程的合理分配与管理。针对每种角色的具体功能职责,其详细的功能模块划分如下所述。
3.2.1 会员用户功能分析
首页:展示网站的核心信息,包括最新公告、新闻资讯、推荐的泳池场次与私教课程等。
问卷调查:参与由管理员发布的问卷,提交反馈和建议,帮助提升服务质量。
网站公告:查看管理员发布的各类通知与公告,了解最新的活动信息和服务更新。
新闻资讯:获取游泳相关的新闻、健康知识以及场馆动态。
泳池场次:浏览不同时间段内泳池的开放情况,并进行在线预约。
私教课程:选择感兴趣的私人教练课程进行报名学习。
我的账户:访问个人中心,管理个人信息及与账户相关的操作。
个人中心:包含个人首页、预订场次、报名课程、课程评价、退款申请、投诉反馈、收藏、评论管理等功能模块。允许会员查看自己的历史记录、提交反馈意见以及对已参加的课程进行评价。
3.2.2 管理员功能分析
后台首页:提供系统数据概览,如访问量、投诉数、预约场次等统计数据,便于快速掌握运营状况。
系统用户:管理所有注册用户的账户信息,包括添加、编辑或删除用户。
投诉反馈管理:处理来自会员的投诉与反馈,确保问题得到及时解决。
泳池类型管理:定义和维护不同类型的泳池及其特性。
时段设置管理:设定并调整泳池的开放时间表,以适应不同的运营需求。
泳池场次管理:管理和发布各个泳池的具体场次安排。
预订场次管理:审核和管理会员的泳池预订请求。
私教课程管理:创建、修改和发布私教课程信息。
报名课程管理:监控会员的课程报名情况,并根据需要进行调整。
课程评价管理:查看和回复学员对课程的评价,促进教学质量的持续改进。
退款申请管理:处理会员提出的退款请求,确保财务流程的透明度和公正性。
系统管理:执行系统级别的配置和维护工作。
网站公告管理:发布和管理面向全体用户的公告和通知。
资源管理:维护系统所需的各类资源文件,如图片、视频等。
权限管理:设置不同角色的访问权限,保障系统的安全性。
通知发布:向特定用户群体发送即时消息或通知,增强沟通效率。
3.2.3 教练用户功能分析
首页:类似于会员用户的首页,但侧重于教练关注的信息,如有助于教学的内容。
网站公告:查看针对教练团队的通知和公告。
新闻资讯:了解行业动态及场馆内部的消息。
泳池场次:查看泳池的开放时间和使用情况,辅助安排教学计划。
私教课程:管理自己负责的私教课程,包括课程详情、上课时间等。
我的账户:访问个人资料页面,管理个人信息。
个人中心:包括个人首页、私教课程、报名课程、课程评价、退款申请、收藏、评论管理等功能,支持教练查看和回应学员的评价,处理相关事务。
3.3 非功能性需求
在游泳馆系统的开发与设计过程中,除了满足基本的功能性需求外,还需要从多个维度考虑系统的非功能性要求,以保证系统的整体质量和用户体验。下面将从可靠性、可用性、性能、安全性等方面进行详细分析。
可靠性:系统应具备较高的稳定性和容错能力,在面对高并发访问或异常操作时能够保持正常运行。通过合理的异常处理机制和日志记录功能,确保系统在发生错误时可以快速定位问题并恢复服务,从而保障用户操作的连续性和数据的一致性。
可用性:系统界面应设计简洁、直观,操作流程清晰,便于不同层次的用户理解和使用。对于不同角色用户,应提供相应的引导提示和帮助信息以提升用户的操作效率和满意度。
性能需求:系统需支持多用户并发访问,并能在合理的时间内响应用户的请求。在典型负载条件下,页面加载时间应控制在合理范围内,关键业务操作的响应延迟不宜过高。
安全性:系统需具备完善的身份认证和权限控制机制,防止未经授权的访问和敏感信息泄露,并应对用户密码进行加密存储,对关键操作进行审计日志记录,确保系统具备一定的抗攻击能力和数据保护能力。
3.4 用户用例模型
3.4.1 会员用户用例图
会员用户的用例图描述了其在系统中的主要功能交互。会员用户可访问首页、浏览网站公告与新闻资讯、参与问卷调查、查看并预约泳池场次、报名私教课程,以及进入个人账户进行信息管理。通过"个人中心"这一核心模块,用户还可进一步执行预订场次、报名课程、提交课程评价、申请退款、反馈投诉、收藏内容及管理评论等操作,全面覆盖日常使用场景,体现了会员用户在系统中多维度的服务需求与行为路径。会员用户角色用例图如图3-1所示。

图3-1会员用户用例图
3.4.2 管理员用例图
管理员用例图,展示其核心管理职能:包括用户管理、投诉处理、泳池类型与时段设置、场次及课程维护、报名与退款审核,并涵盖公告发布、资源管理、权限配置和通知推送等系统级操作,全面支撑游泳馆的高效运营。管理员角色用例图如如图3-2所示。

图3-2管理员用例图
3.4.3 教练用户用例图
教练用户可访问首页、查看网站公告与新闻资讯、浏览泳池场次信息、管理私教课程,并进入个人账户进行信息维护。通过"个人中心"模块,还可查看报名学员情况、处理课程评价、提交退款申请、收藏内容及管理评论,实现教学事务的便捷管理与服务反馈。教练用户角色用例图如如图3-3所示。

图3-3教练用户用例图
3.5 系统流程分析
3.5.1 注册登录流程图
用户注册登录模块主要是为了方便用户和管理员能够安全地访问系统并管理自己的信息,用户根据提示输入注册信息进行注册操作以获得个人账号,在登录界面输入账号密码等信息进行系统登录,用户注册登录流程如下图所示。

图3-4系统操作流程图
3.5.2 数据添加流程图
用户成功登录系统后,即可进行添加数据操作。添加的数据具有一个由系统自动生成的特定编号,用户可根据提示输入其余信息并提交,系统会对提交信息进行验证,验证通过则显示添加数据成功。数据添加流程如下图所示。

图3-5 数据添加流程图
3.5.3 数据修改流程图
用户成功登录系统后,可进行修改数据操作,流程与添加数据操作相似,数据修改流程如下图所示。

图3-6数据修改流程图
3.5.4 数据删除流程图
当系统里面存在一些无效或过期的数据信息,系统支持相关的管理人员对这些数据进行删除操作,数据修改流程如下图所示。

图3-7 数据删除流程图
3.5.5 数据搜索流程图
用户可以通过输入关键字方式在系统大量的数据中检索所需的信息,在搜索框输入关键字确认查询后,系统会自动检索数据库并显示特定的数据信息,数据搜索流程如下图所示。

图3-8数据搜索流程图
4 系统设计
4.1 系统架构设计
本系统在架构设计上采用了经典的三层体系结构,分别为表现层、业务逻辑层以及数据访问层,并通过集群化管理方式实现高效的数据处理与并发访问。其中表现层主要承担用户交互功能,负责信息的展示与用户输入的接收,将用户操作传达给业务逻辑层处理,并最终将处理的结果反馈给用户,采用JavaScript等技术进行构建简洁和直观前端页面,以提升界面响应速度与用户体验。业务逻辑层作为系统的核心处理单元,主要负责各类核心业务规则的封装与执行,按需与数据访问层交互,以便获取或更新所需的数据,该层基于SpringBoot框架进行开发,借助其良好的模块化设计和自动化配置能力来保障系统业务流程的高效运行与稳定性。数据访问层则专注于与数据库之间的交互操作,包括数据的存储、查询与更新等功能,系统中采用JPA或MyBatis等持久层框架来实现对MySQL数据库的访问,确保数据操作的准确性、一致性与安全性。系统架构图如图4-1所示,展示了各层次之间的功能划分与数据流向关系。

图4-1系统架构图
4.2 功能模块设计
整个游泳馆系统由多个功能模块组成,通过对用户需求进行分析,该系统主要划分为会员用户、教练用户与管理员三大核心模块。每个模块下又包含了若干子功能模块,系统将通过多角色协作来实现系统的各项职能。不同角色对应的具体功能模块如图4-2所示,游泳馆系统功能设计能够确保各角色能够负责其特定职责。

图4-2系统功能结构图
4.3 数据库设计
4.3.1 概念结构设计
通过提供清晰的系统总E-R图,可以使其他用户快速理解和分析复杂的系统结构,更加轻松地掌握了解系统的整体架构和各功能组件之间的联系。根据对游泳馆系统中各类实体及其属性的分析,本游泳馆系统总体E-R图如图4-3所示,以直观地展示各实体之间的关系。

图4-3 系统总体ER图
4.3.2 物理结构设计
依据前一节对游泳馆系统的整体E-R关系图的分析,为了满足系统功能需求,需要创建多个数据表。下面将着重介绍几个核心数据库表的设计结构,详细阐述这些关键数据库表的设计细节,包括但不限于字段定义、数据类型及其相互间的关系,从而为系统的稳定运行提供坚实的基础。
表 4-1-access_token(登陆访问时长)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | info | text | 65535 | 否 | 否 | 信息 |
| 3 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 4 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 5 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | description | text | 65535 | 否 | 否 | 文章描述 |
| 5 | hits | int | 是 | 否 | 点击数 | |
| 6 | img | varchar | 255 | 否 | 否 | 封面图 |
| 7 | praise_len | int | 是 | 否 | 点赞数 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | tag | varchar | 255 | 否 | 否 | 标签 |
| 10 | title | varchar | 125 | 是 | 是 | 标题 |
| 11 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 13 | url | varchar | 255 | 否 | 否 | 来源地址 |
表 4-3-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | description | varchar | 255 | 否 | 否 | 描述 |
| 3 | display | smallint | 是 | 否 | 显示顺序 | |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 6 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 7 | type_id | smallint | 是 | 是 | 分类ID | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | url | varchar | 255 | 否 | 否 | 外链地址 |
表 4-4-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | add | tinyint | 是 | 否 | 是否可增加 | |
| 2 | auth_id | int | 是 | 是 | 授权ID | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | del | tinyint | 是 | 否 | 是否可删除 | |
| 5 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 6 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 7 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 8 | get | tinyint | 是 | 否 | 是否可查看 | |
| 9 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | option | text | 65535 | 否 | 否 | 配置 |
| 12 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 13 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 14 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 15 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 16 | position | varchar | 32 | 否 | 否 | 位置 |
| 17 | set | tinyint | 是 | 否 | 是否可修改 | |
| 18 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 21 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 22 | user_group | varchar | 64 | 否 | 否 | 用户组 |
表 4-5-booking_sessions(预订场次)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | appointment_date | date | 否 | 否 | 预约日期 | |
| 2 | booking_sessions_id | int | 是 | 是 | 预订场次ID | |
| 3 | cost_of_sessions | double | 否 | 否 | 场次费用 | |
| 4 | cost_points | double | 否 | 否 | 费用积分 | |
| 5 | create_by | int | 是 | 否 | 创建用户ID | |
| 6 | create_time | datetime | 是 | 否 | 创建时间 | |
| 7 | examine_reply | varchar | 255 | 否 | 否 | 审核回复 |
| 8 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 9 | member_mobile_phone | varchar | 64 | 否 | 否 | 会员手机 |
| 10 | member_name | varchar | 64 | 否 | 否 | 会员姓名 |
| 11 | member_remarks | text | 65535 | 否 | 否 | 会员备注 |
| 12 | member_user | int | 否 | 否 | 会员用户 | |
| 13 | number_of_reservations | varchar | 64 | 是 | 否 | 预约人数 |
| 14 | number_of_sessions | varchar | 64 | 否 | 否 | 场次编号 |
| 15 | pay_state | varchar | 16 | 是 | 否 | 支付状态 |
| 16 | pay_type | varchar | 16 | 否 | 否 | 支付类型: 微信、支付宝、网银 |
| 17 | reservation_order | varchar | 64 | 否 | 否 | 预约订单 |
| 18 | session_period | varchar | 64 | 否 | 否 | 场次时段 |
| 19 | site_name | varchar | 64 | 否 | 否 | 场地名称 |
| 20 | source_id | int | 否 | 否 | 来源ID | |
| 21 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 22 | source_user_id | int | 否 | 否 | 来源用户 | |
| 23 | type_of_pool | varchar | 64 | 否 | 否 | 泳池类型 |
| 24 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-coach_user(教练用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | coach_number | varchar | 64 | 是 | 是 | 教练工号 |
| 2 | coach_phone | varchar | 16 | 是 | 是 | 教练手机 |
| 3 | coach_profile | text | 65535 | 否 | 否 | 教练简介 |
| 4 | coach_user_id | int | 是 | 是 | 教练用户ID | |
| 5 | create_by | int | 是 | 否 | 创建用户ID | |
| 6 | create_time | datetime | 是 | 否 | 创建时间 | |
| 7 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 8 | name_of_coach | varchar | 64 | 否 | 否 | 教练姓名 |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 10 | user_id | int | 是 | 否 | 用户ID |
表 4-7-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | code | varchar | 255 | 否 | 否 | 验证码 |
| 2 | code_token_id | int | 是 | 是 | 验证码ID | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | token | varchar | 255 | 否 | 否 | 令牌 |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-8-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | img | varchar | 255 | 否 | 否 | 封面 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | title | varchar | 255 | 否 | 否 | 标题 |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | user_id | int | 是 | 是 | 收藏人ID |
表 4-9-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 2 | comment_id | int | 是 | 是 | 评论ID | |
| 3 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | hidden | tinyint | 否 | 否 | 是否隐藏 | |
| 6 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 7 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 8 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 9 | source_id | int | 是 | 否 | 来源ID | |
| 10 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 11 | sticky | tinyint | 否 | 否 | 是否置顶 | |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 13 | user_id | int | 是 | 是 | 评论人ID |
表 4-10-complaint_feedback(投诉反馈)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | complaint_content | text | 65535 | 否 | 否 | 投诉内容 |
| 2 | complaint_feedback_id | int | 是 | 是 | 投诉反馈ID | |
| 3 | create_by | int | 是 | 否 | 创建用户ID | |
| 4 | create_time | datetime | 是 | 否 | 创建时间 | |
| 5 | handling_reply | text | 65535 | 否 | 否 | 处理回复 |
| 6 | member_mobile_phone | varchar | 64 | 否 | 否 | 会员手机 |
| 7 | member_name | varchar | 64 | 否 | 否 | 会员姓名 |
| 8 | member_user | int | 否 | 否 | 会员用户 | |
| 9 | processing_status | varchar | 64 | 否 | 否 | 处理状态 |
| 10 | subject_of_complaint | varchar | 64 | 否 | 否 | 投诉主题 |
| 11 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-11-curriculum_evaluation(课程评价)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | coach_number | varchar | 64 | 否 | 否 | 教练工号 |
| 2 | coach_user | int | 否 | 否 | 教练用户 | |
| 3 | course_name | varchar | 64 | 否 | 否 | 课程名称 |
| 4 | course_number | varchar | 64 | 否 | 否 | 课程编号 |
| 5 | create_by | int | 是 | 否 | 创建用户ID | |
| 6 | create_time | datetime | 是 | 否 | 创建时间 | |
| 7 | curriculum_evaluation_id | int | 是 | 是 | 课程评价ID | |
| 8 | evaluation_grade | varchar | 64 | 否 | 否 | 评价等级 |
| 9 | evaluation_specificss | text | 65535 | 否 | 否 | 评价详情 |
| 10 | member_mobile_phone | varchar | 64 | 否 | 否 | 会员手机 |
| 11 | member_name | varchar | 64 | 否 | 否 | 会员姓名 |
| 12 | member_user | int | 否 | 否 | 会员用户 | |
| 13 | name_of_coach | varchar | 64 | 否 | 否 | 教练姓名 |
| 14 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 15 | source_id | int | 否 | 否 | 来源ID | |
| 16 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 17 | source_user_id | int | 否 | 否 | 来源用户 | |
| 18 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-12-enroll_in_courses(报名课程)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | coach_number | varchar | 64 | 否 | 否 | 教练工号 |
| 2 | coach_user | int | 否 | 否 | 教练用户 | |
| 3 | course_fees | double | 否 | 否 | 课程费用 | |
| 4 | course_name | varchar | 64 | 否 | 否 | 课程名称 |
| 5 | course_number | varchar | 64 | 否 | 否 | 课程编号 |
| 6 | course_time_limit | varchar | 64 | 否 | 否 | 课程时限 |
| 7 | create_by | int | 是 | 否 | 创建用户ID | |
| 8 | create_time | datetime | 是 | 否 | 创建时间 | |
| 9 | curriculum_evaluation_limit_times | int | 是 | 否 | 课程评价限制次数 | |
| 10 | effective_period | date | 否 | 否 | 有效期限 | |
| 11 | enroll_in_courses_id | int | 是 | 是 | 报名课程ID | |
| 12 | examine_reply | varchar | 255 | 否 | 否 | 审核回复 |
| 13 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 14 | member_mobile_phone | varchar | 64 | 否 | 否 | 会员手机 |
| 15 | member_name | varchar | 64 | 否 | 否 | 会员姓名 |
| 16 | member_remarks | text | 65535 | 否 | 否 | 会员备注 |
| 17 | member_user | int | 否 | 否 | 会员用户 | |
| 18 | name_of_coach | varchar | 64 | 否 | 否 | 教练姓名 |
| 19 | number_of_enrolment | varchar | 64 | 是 | 否 | 报名人数 |
| 20 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 21 | pay_state | varchar | 16 | 是 | 否 | 支付状态 |
| 22 | pay_type | varchar | 16 | 否 | 否 | 支付类型: 微信、支付宝、网银 |
| 23 | refund_application_limit_times | int | 是 | 否 | 申请退款限制次数 | |
| 24 | refund_instructions | text | 65535 | 否 | 否 | 退款说明 |
| 25 | refund_period | date | 否 | 否 | 退款期限 | |
| 26 | source_id | int | 否 | 否 | 来源ID | |
| 27 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 28 | source_user_id | int | 否 | 否 | 来源用户 | |
| 29 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-13-evaluation(测评问卷)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | duration | int | 否 | 否 | 答题时长 | |
| 3 | evaluation_result | text | 65535 | 否 | 否 | 测评结果 |
| 4 | exam_id | mediumint | 是 | 是 | 问卷id | |
| 5 | name | varchar | 32 | 是 | 否 | 问卷名称 |
| 6 | open_end | datetime | 否 | 否 | 开放结束时间 | |
| 7 | open_start | datetime | 否 | 否 | 开放开始时间 | |
| 8 | status | varchar | 10 | 否 | 否 | 状态:启用、禁用 |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-14-evaluation_question(题目)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | exam_id | mediumint | 是 | 是 | 所属问卷 | |
| 3 | exam_question_id | mediumint | 是 | 是 | 题目ID | |
| 4 | question_item | varchar | 500 | 否 | 否 | 选项 |
| 5 | question_order | int | 否 | 否 | 排序 | |
| 6 | title | varchar | 255 | 否 | 否 | 题目 |
| 7 | type | varchar | 20 | 否 | 否 | 类型 |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-evaluation_user_answer(用户答题)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | answers | text | 65535 | 否 | 否 | 答案 |
| 2 | comment_desc | varchar | 255 | 否 | 否 | 评语 |
| 3 | comment_state | tinyint | 否 | 否 | 点评状态 | |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | exam_id | mediumint | 是 | 是 | 考试ID | |
| 6 | nickname | varchar | 255 | 否 | 否 | 提交人 |
| 7 | score | double | 否 | 否 | 分数 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | user_answer_id | mediumint | 是 | 是 | 用户答题ID | |
| 10 | user_id | mediumint | 是 | 否 | 用户ID |
表 4-16-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | hits_id | int | 是 | 是 | 点赞ID | |
| 3 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 4 | source_id | int | 是 | 否 | 来源ID | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 点赞人 |
表 4-17-member_user(会员用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_by | int | 是 | 否 | 创建用户ID | |
| 2 | create_time | datetime | 是 | 否 | 创建时间 | |
| 3 | date_of_membership | date | 否 | 否 | 入会日期 | |
| 4 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 5 | gender_of_member | varchar | 64 | 否 | 否 | 会员性别 |
| 6 | member_documents | varchar | 90 | 是 | 是 | 会员证件 |
| 7 | member_mobile_phone | varchar | 16 | 是 | 是 | 会员手机 |
| 8 | member_name | varchar | 64 | 否 | 否 | 会员姓名 |
| 9 | member_user_id | int | 是 | 是 | 会员用户ID | |
| 10 | points_summary | double | 否 | 否 | 积分汇总 | |
| 11 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 12 | user_id | int | 是 | 否 | 用户ID |
表 4-18-message_inform(通知记录)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | varchar | 255 | 否 | 否 | 内容 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | inform_id | int | 是 | 是 | 通知ID | |
| 4 | state | varchar | 255 | 否 | 否 | 状态 |
| 5 | title | varchar | 255 | 否 | 否 | 标题 |
| 6 | type | varchar | 64 | 否 | 否 | 分类 |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | user_id | int | 是 | 是 | 通知人ID |
表 4-19-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 4 | title | varchar | 125 | 是 | 否 | 标题 |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-20-period_settings(时段设置)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_by | int | 是 | 否 | 创建用户ID | |
| 2 | create_time | datetime | 是 | 否 | 创建时间 | |
| 3 | period_settings_id | int | 是 | 是 | 时段设置ID | |
| 4 | period_type | varchar | 64 | 否 | 否 | 时段类型 |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-21-pool_sessions(泳池场次)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | booking_sessions_limit_times | int | 是 | 否 | 预订场次限制次数 | |
| 2 | collect_len | int | 是 | 否 | 收藏数 | |
| 3 | comment_len | int | 是 | 否 | 评论数 | |
| 4 | cost_of_sessions | double | 否 | 否 | 场次费用 | |
| 5 | cost_points | double | 否 | 否 | 费用积分 | |
| 6 | create_by | int | 是 | 否 | 创建用户ID | |
| 7 | create_time | datetime | 是 | 否 | 创建时间 | |
| 8 | field_capacity | double | 否 | 否 | 场次容量 | |
| 9 | hits | int | 是 | 否 | 点击数 | |
| 10 | number_of_persons_available | double | 否 | 否 | 可约人数 | |
| 11 | number_of_sessions | varchar | 64 | 是 | 是 | 场次编号 |
| 12 | pool_sessions_id | int | 是 | 是 | 泳池场次ID | |
| 13 | praise_len | int | 是 | 否 | 点赞数 | |
| 14 | precautions | longtext | 4294967295 | 否 | 否 | 注意事项 |
| 15 | session_period | varchar | 64 | 否 | 否 | 场次时段 |
| 16 | site_name | varchar | 64 | 否 | 否 | 场地名称 |
| 17 | site_status | varchar | 64 | 否 | 否 | 场地状态 |
| 18 | type_of_pool | varchar | 64 | 否 | 否 | 泳池类型 |
| 19 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 20 | venue_poster | varchar | 255 | 否 | 否 | 场地海报 |
表 4-22-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | img | varchar | 255 | 否 | 否 | |
| 3 | praise_id | int | 是 | 是 | 点赞ID | |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 | |
| 8 | title | varchar | 255 | 否 | 否 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 10 | user_id | int | 是 | 是 | 点赞人 |
表 4-23-private_teaching_courses(私教课程)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | coach_number | varchar | 64 | 否 | 否 | 教练工号 |
| 2 | coach_profile | text | 65535 | 否 | 否 | 教练简介 |
| 3 | coach_user | int | 否 | 否 | 教练用户 | |
| 4 | collect_len | int | 是 | 否 | 收藏数 | |
| 5 | comment_len | int | 是 | 否 | 评论数 | |
| 6 | course_capacity | double | 否 | 否 | 课程容量 | |
| 7 | course_content | longtext | 4294967295 | 否 | 否 | 课程内容 |
| 8 | course_cover | varchar | 255 | 否 | 否 | 课程封面 |
| 9 | course_fees | double | 否 | 否 | 课程费用 | |
| 10 | course_name | varchar | 64 | 否 | 否 | 课程名称 |
| 11 | course_number | varchar | 64 | 否 | 否 | 课程编号 |
| 12 | course_status | varchar | 64 | 否 | 否 | 课程状态 |
| 13 | course_time_limit | varchar | 64 | 否 | 否 | 课程时限 |
| 14 | create_by | int | 是 | 否 | 创建用户ID | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | curriculum_resources | varchar | 255 | 否 | 否 | 课程资源 |
| 17 | enroll_in_courses_limit_times | int | 是 | 否 | 报名参加限制次数 | |
| 18 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 19 | hits | int | 是 | 否 | 点击数 | |
| 20 | name_of_coach | varchar | 64 | 否 | 否 | 教练姓名 |
| 21 | number_of_returnable_persons | double | 否 | 否 | 可报人数 | |
| 22 | praise_len | int | 是 | 否 | 点赞数 | |
| 23 | private_teaching_courses_id | int | 是 | 是 | 私教课程ID | |
| 24 | suidesk_for_the_crowd | varchar | 64 | 否 | 否 | 适合人群 |
| 25 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-24-refund_application(退款申请)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | application_date | date | 否 | 否 | 申请日期 | |
| 2 | coach_number | varchar | 64 | 否 | 否 | 教练工号 |
| 3 | coach_user | int | 否 | 否 | 教练用户 | |
| 4 | course_fees | double | 否 | 否 | 课程费用 | |
| 5 | course_name | varchar | 64 | 否 | 否 | 课程名称 |
| 6 | course_number | varchar | 64 | 否 | 否 | 课程编号 |
| 7 | create_by | int | 是 | 否 | 创建用户ID | |
| 8 | create_time | datetime | 是 | 否 | 创建时间 | |
| 9 | examine_reply | varchar | 255 | 否 | 否 | 审核回复 |
| 10 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 11 | member_mobile_phone | varchar | 64 | 否 | 否 | 会员手机 |
| 12 | member_name | varchar | 64 | 否 | 否 | 会员姓名 |
| 13 | member_user | int | 否 | 否 | 会员用户 | |
| 14 | name_of_coach | varchar | 64 | 否 | 否 | 教练姓名 |
| 15 | order_number | varchar | 64 | 否 | 否 | 订单编号 |
| 16 | reason_for_application | text | 65535 | 否 | 否 | 申请理由 |
| 17 | refund_application_id | int | 是 | 是 | 退款申请ID | |
| 18 | source_id | int | 否 | 否 | 来源ID | |
| 19 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 20 | source_user_id | int | 否 | 否 | 来源用户 | |
| 21 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-25-releasing_notices(通知发布)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | varchar | 255 | 否 | 否 | 通知内容 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | notices_id | int | 是 | 是 | 通知ID | |
| 4 | title | varchar | 255 | 否 | 否 | 通知标题 |
| 5 | type | varchar | 64 | 否 | 否 | 通知方式 |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-26-seat_setting(座位设置表)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | icon_setting | text | 65535 | 否 | 否 | 图标设置 |
| 3 | seat_setting_id | mediumint | 是 | 是 | 设置ID | |
| 4 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 5 | table | longtext | 4294967295 | 否 | 否 | 详细设置 |
| 6 | table_column | mediumint | 否 | 否 | 列 | |
| 7 | table_row | mediumint | 否 | 否 | 行 | |
| 8 | time_period_setting | text | 65535 | 否 | 否 | 时间段设置 |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-27-sensitive_vocabulary(敏感词汇)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | datetime | 是 | 否 | 创建时间 | |
| 2 | sensitive_vocabulary | varchar | 64 | 否 | 否 | 敏感词汇 |
| 3 | sensitive_vocabulary_id | int | 是 | 是 | 敏感词汇ID | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-28-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | varchar | 255 | 否 | 否 | 内容 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | hits | int | 是 | 否 | 点击量 | |
| 4 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 5 | slides_id | int | 是 | 是 | 轮播图ID | |
| 6 | title | varchar | 64 | 否 | 否 | 标题 |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | url | varchar | 255 | 否 | 否 | 链接 |
表 4-29-type_of_pool(泳池类型)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_by | int | 是 | 否 | 创建用户ID | |
| 2 | create_time | datetime | 是 | 否 | 创建时间 | |
| 3 | type_name | varchar | 64 | 否 | 否 | 类型名称 |
| 4 | type_of_pool_id | int | 是 | 是 | 泳池类型ID | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-30-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 2 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 3 | father_id | int | 否 | 否 | 父级ID | |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | name | varchar | 64 | 否 | 否 | 文件名 |
| 6 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 7 | type | varchar | 32 | 否 | 否 | 文件类型 |
| 8 | upload_id | int | 是 | 是 | 上传ID |
表 4-31-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|----|------------------|-----------|-----|------|------|------------|------|-------|-------|
| 1 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 2 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 3 | email | varchar | 64 | 否 | 否 | 邮箱 |
| 4 | email_state | smallint | | 是 | 否 | 邮箱认证:(0未认证 | 1审核中 | 2已认证) |
| 5 | emergency_mobile | varchar | 32 | 否 | 否 | 紧急联系电话 |
| 6 | emergency_name | varchar | 64 | 否 | 否 | 紧急联系人 |
| 7 | login_time | timestamp | | 否 | 否 | 上次登录时间 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 10 | password | varchar | 64 | 是 | 否 | 密码 |
| 11 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 12 | phone_state | smallint | | 是 | 否 | 手机认证:(0未认证 | 1审核中 | 2已认证) |
| 13 | state | smallint | | 是 | 否 | 账户状态:(1可用 | 2异常 | 3已冻结 | 4已注销) |
| 14 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 15 | user_id | int | | 是 | 是 | 用户ID |
| 16 | username | varchar | 16 | 是 | 否 | 用户名 |
表 4-32-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | description | varchar | 255 | 否 | 否 | 描述 |
| 3 | display | smallint | 是 | 否 | 显示顺序 | |
| 4 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 5 | name | varchar | 16 | 是 | 否 | 名称 |
| 6 | register | smallint | 否 | 否 | 注册位置 | |
| 7 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 8 | source_id | int | 是 | 否 | 来源ID | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
5 系统实现
5.1 会员用户功能实现
5.1.1 用户注册模块
注册界面用于新用户创建账户,通过填写必要信息完成身份验证与账户建立。页面包含账号、密码设置、昵称、邮箱等基础信息输入项,确保用户能够安全地设立个人账户。身份选择区域支持不同类型的用户分类,便于后续服务分配。会员相关信息如姓名、性别、手机号及证件号码的录入,有助于完善用户档案,提升管理效率与服务质量。注册界面如下图所示。

图5-1注册界面
5.1.2 用户登录模块
会员用户登录界面用于已注册用户进入系统。页面包含用户名、密码和验证码输入框,用户需正确填写相关信息完成身份验证。系统会对输入内容进行校验,确保登录安全。提示信息说明注册后需要管理员审核通过才能使用账户,保障账户管理的规范性。登录按钮位于下方,操作清晰直接。底部设有创建账户和找回密码的链接,方便用户处理相关需求。登录界面如下图所示。

图5-2登录界面
5.1.3 前台首页模块
会员用户首页界面是进入系统后的主展示页面,顶部设有搜索框和导航菜单,方便用户快速查找信息或跳转至不同功能模块。页面上方以泳池场景的视觉元素营造轻松愉悦的氛围,增强使用体验。右上角显示用户头像及身份标识,便于确认当前登录状态。下方区域展示新闻资讯内容,提供最新的活动通知与相关信息,帮助用户及时了解场馆动态。界面如下图所示。

图5-3首页界面
5.1.4 泳池场次模块
泳池场次页面展示场地详情,包括名称、时间、费用、容量等信息,方便用户了解并选择合适的时段。页面支持点赞、收藏和分享功能,可查看使用注意事项,保障安全规范。用户可通过"预订场次"按钮完成预约,并在评论区发表使用反馈,提升互动体验。界面如下图所示。

图5-4泳池场次界面

图5-5预约场次界面
5.1.5 私教课程模块
会员用户在私教课程页面可浏览各类游泳教学课程,查看名称、费用、时长、适用人群、教练信息及当前状态等内容;支持按条件筛选与排序,点击课程可了解详细教学安排和配套资源,并通过点赞、收藏或"报名参加"按钮完成互动与报名,并在评论区发表使用反馈,页面布局简洁,便于快速选择与操作。私教课程界面如下图所示。

图5-6 私教课程界面

图5-7 报名参加界面
5.3.2 个人中心模块
会员用户在个人中心界面可查看和管理个人信息及服务记录。页面包含"个人首页"、"预订场次"、"报名课程"、"课程评价"、"退款申请"、"投诉反馈"、"收藏"和"评论管理"等多个功能模块,支持对已报名课程、预约信息、投诉记录等进行查询与操作。个人首页展示课程评价和泳池类型的数据统计图表,直观呈现使用情况。界面如下图所示。

图5-7个人中心界面
5.2 管理员功能实现
5.2.1 后台首页模块
管理员首页界面是系统管理的核心入口,整体布局清晰高效。左侧为功能导航菜单,涵盖用户管理、泳池与场次设置、私教课程、报名审核、投诉处理、问卷调查等主要管理模块,便于快速跳转。顶部区域显示当前管理员的昵称、身份和登录时间,并提供修改资料、修改密码及退出登录等操作入口。右上角设有通知按钮,实时提示未读消息,帮助管理员及时响应系统动态。页面右侧为主内容区,上方以数据卡片形式展示访问量、投诉数量、预约场次、课程报名等关键运营指标,中部设有常用功能快捷入口,提升日常操作效率。界面如下图所示。

图5-8后台首页界面
5.2.2 系统用户模块
管理员可在"系统用户"模块中统一管理三类用户:管理员、会员用户和教练用户。其中,管理员负责系统整体运营;会员用户由其注册后需经管理员审核通过方可使用服务;教练用户作为游泳馆员工,由管理员直接添加,无需注册流程。
在"教练用户"管理页面,支持按姓名或工号查询,可查看教练的昵称、用户名、联系方式、简介等信息,并进行添加、删除或查看详情操作。在"会员用户"管理页面,支持按姓名、性别、审核状态等条件筛选,可对会员信息进行查看、审核、批量审核或删除,确保账户管理规范有序。界面如下图所示。

图5-9 系统用户界面
5.2.3 投诉反馈管理模块
管理员在"投诉反馈管理"中可查看会员提交的投诉列表,支持按姓名、主题或处理状态筛选,并能查看详情与回复。同时可手动添加投诉记录,便于统一跟进与闭环处理,提升服务效率。界面如下图所示。

图5-10 投诉反馈管理界面
5.2.4 泳池场次管理模块
管理员可通过"泳池场次管理"模块维护场地信息。在泳池场次列表中,支持按场地名称、类型、时段和状态筛选查询,查看各场次的详细信息并可查看详情或查看评论。在泳池场次添加页面,可填写场地名称、编号、海报、类型、时段、费用、容量、可约人数等信息,并设置开放状态与注意事项,实现高效灵活的场次配置。界面如下图所示。

图5-11 泳池场次管理界面
5.2.5 预订场次管理模块
管理员可在"预订场次管理"模块中查看和处理会员的场地预约记录。支持按会员姓名、场地名称、时段、审核状态和支付状态等条件筛选查询,清晰展示每条预约信息。操作项包括"详情"、"审核"和"支付",便于管理员对预约进行审核确认或补录支付,实现对预约流程的全面管控。界面如下图所示。

图5-12 预订场次管理界面
5.2.6 私教课程管理模块
管理员可通过"私教课程管理"模块对私教课程进行统一维护。在私教课程列表中,支持按课程名称、费用、状态等条件筛选,查看课程详情、评论或进行审核操作。在私教课程添加页面,可填写课程名称、编号、费用、时限、封面、视频资源、适用人群、容量、教练信息等内容,实现课程的灵活创建与配置,便于后续会员报名与教学管理。界面如下图所示。

图5-13 私教课程管理界面
5.2.7 报名课程管理模块
管理员可在"报名课程管理"模块中查看会员的课程报名记录。支持按会员姓名、课程名称、审核状态和支付状态等条件筛选查询,清晰展示每条报名信息。操作项包括"详情"、"审核"、"课程评价"、"申请退款"和"支付",便于管理员对报名进行审核、处理支付或退款,实现对课程报名流程的全面管理。界面如下图所示。

图5-14 报名课程管理界面
5.2.8 系统管理模块
管理员可在"系统管理"模块中进行轮播图和敏感词的配置管理。在轮播图管理中,支持添加、编辑、删除首页展示图片,并设置标题与跳转链接,提升页面视觉效果与引导功能;在敏感词管理中,可查询、新增或删除敏感词汇,有效过滤不当内容,保障平台内容安全与合规性。界面如下图所示。

图5-15 系统管理界面
5.3 教练用户功能实现
5.3.1 首页模块
教练用户登录后进入首页,页面顶部设有搜索框和导航栏,支持快速访问首页、网站公告、新闻资讯、泳池场次和私教课程等模块。右上角显示用户头像与账号信息,点击可进入"我的账户"或"个人中心"进行信息管理,也可选择退出登录。界面如下图所示。

图5-16 首页界面
5.3.2 个人中心模块
教练用户进入"个人中心"后,可查看和管理与教学相关的各项信息。首页展示课程报名人数、课程评价及泳池类型等数据统计图表,直观呈现教学运营情况。通过顶部导航可切换至不同功能模块:
私教课程:支持添加、删除、查询课程,设置课程名称、费用、状态,并查看审核进度;
报名课程:查看会员报名记录,了解课程详情与支付状态;
课程评价:浏览学员对课程的评价内容,支持按条件筛选;
退款申请:查看学员提交的退款请求,及时跟进处理;
收藏与评论管理:管理个人收藏内容及评论信息。界面如下图所示。

图5-17 个人中心界面

图5-18 私教课程界面
6 系统测试
6.1 测试目的方法
系统测试是软件开发过程中的关键环节,其主要目的是验证系统是否能够稳定、高效地运行,确保各功能模块符合设计需求,在不同应用场景下具备良好的兼容性与安全性。通过测试发现并修复潜在问题,保障系统在实际应用中的可靠性与用户体验。
在本系统的测试过程中,采用多种测试方法相结合的方式,以确保测试的全面性和有效性,包括功能测试、性能测试、兼容性测试、安全性测试多种手段,采用自动化工具与人工测试相结合的方式,全面评估系统的各项指标,确保系统在多用户并发、复杂网络环境下的稳定运行能力。下面将主要对功能测试用例进行分析说明。
6.2 功能测试用例
用户注册功能测试
在登录系统之前,用户必须先注册为系统用户拥有账户权限。需要用户在注册页面根据提示填写必要的注册信息来创建账户。用户注册功能测试用例设计如表6-1所示。
表6-1 用户注册功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证用户成功注册 | 测试输入有效的用户名和密码,确认密码一致并点击注册 | 显示注册成功的提示信息 | 通过 |
| 验证用户名重复不能注册 | 测试输入已存在的用户名和输入有效的密码,确认密码一致并点击注册 | 显示用户名已存在的提示信息 | 通过 |
用户登录功能测试
为了使用系统的全部功能,用户首先需要进行登录。在登录界面,用户应输入其账号和密码以完成身份验证过程。有关用户登录功能测试用例设计如表6-2所示。
表6-2 用户登录功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证有效登录 | 测试输入正确的用户名和密码,点击登录按钮 | 显示登录成功,跳转至用户首页 | 通过 |
| 验证空用户名登录 | 测试不输入用户名,输入正确密码 ,点击登录按钮 | 显示用户名不能为空提示信息 | 通过 |
| 验证空密码登录 | 测试输入正确用户名,不输入密码,点击登录按钮 | 显示密码不能为空提示信息 | 通过 |
| 验证错误用户名登录 | 测试输入错误的用户名和正确密码,点击登录按钮 | 显示用户名或密码错误提示信息 | 通过 |
| 验证错误密码登录 | 测试输入正确用户名和错误密码,点击登录按钮 | 显示用户名或密码错误提示信息 | 通过 |
会员用户问卷调查功能测试
针对问卷调查模块的功能测试,主要检验问卷的展示、填写与提交流程是否符合预期。关于问卷调查功能测试用例设计如表6-3所示。
表6-3 问卷调查管理功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证问卷展示 | 进入"问卷调查"页面,查看已有问卷列表 | 正确显示问卷标题、发布时间、状态等信息 | 通过 |
| 验证问卷填写 | 选择一份问卷,填写必填项并提交 | 提交成功提示弹出,问卷记录保存至后台 | 通过 |
| 验证重复提交限制 | 同一用户对同一问卷再次提交 | 系统提示"已提交,请勿重复填写" | 通过 |
管理员后台首页功能测试
针对管理员后台首页模块的功能测试,主要检验系统数据统计、快捷入口和通知提醒等功能是否正常。关于管理员后台首页功能测试用例设计如表6-4所示。
表6-4 后台首页管理功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证首页数据统计 | 登录后查看首页的数据卡片(访问量、投诉数、预约场次等) | 数据实时更新,数值准确反映当前系统状态 | 通过 |
| 验证快捷操作入口 | 点击"新增泳池场次"或"发布公告"等快捷按钮 | 跳转至对应管理页面,操作流程顺畅 | 通过 |
| 验证通知提醒 | 模拟新消息产生,查看右上角通知图标 | 图标显示未读数量,点击可查看详细通知内容 | 通过 |
教练用户私教课程管理功能测试
针对教练用户私教课程管理模块的功能测试,主要检验课程的添加、修改、审核状态查看及评论管理等功能是否正常。关于教练用户私教课程管理功能测试用例设计如表6-5所示。
表6-5 教练用户私教课程管理功能测试表
| 测试目的 | 用例描述 | 预期结果 | 测试结果 |
|---|---|---|---|
| 验证课程添加 | 在"私教课程"页面点击"添加",填写课程名称、费用、简介等信息并提交 | 系统提示"添加成功",课程出现在列表中且状态为"待审核" | 通过 |
| 验证课程修改 | 编辑已存在的课程信息并保存 | 修改内容生效,列表中数据同步更新 | 通过 |
| 验证课程状态查看 | 查看课程审核状态(如"已通过""未审核") | 状态信息正确显示,支持筛选查询 | 通过 |
| 验证查看学员评价 | 点击"查看评论"按钮 | 弹出评论详情窗口,显示学员评价内容 | 通过 |
6.3 测试结果分析
根据上述一系列详尽的功能测试用例,我们可以得出系统在用户注册、登录、会员问卷调查、管理员后台首页以及教练用户私教课程管理等方面均表现出良好的稳定性和可靠性。测试结果表明,无论是基础的账户操作如注册和登录,还是更复杂的业务流程如问卷提交与反馈、数据统计展示、快捷操作入口响应,再到特定角色的操作如教练用户的课程管理和评价查看,各功能模块均能按预期工作,未出现重大缺陷或异常情况。这说明系统的各个关键部分设计合理,实现了预期的功能目标,并能够支持不同用户角色的有效交互。此外,通过模拟实际使用场景中的各种输入条件,我们验证了系统具有良好的容错能力和用户体验,确保了即使在非理想条件下也能提供准确、友好的反馈信息。总体而言,这些测试为系统的顺利上线提供了有力保障,同时也为进一步优化提供了明确的方向。