随着现代化进程的加速,中国传统非物质文化遗产(以下简称“非遗”)面临着传承断层、传播渠道单一、公众参与度低等严峻挑战。打铁花作为一项具有千年历史的传统民间技艺,以其壮观的视觉效果和深厚的文化内涵著称,但其传承与推广仍主要依赖线下表演,缺乏系统化、数字化的传播手段。为解决这一问题,本文设计并实现了一套基于Spring Boot框架的打铁花非遗文化传播系统。
本研究通过需求分析、系统设计和开发实现,结合前后端分离理念,利用Spring Boot框架配合MySQL数据库构建后端服务,采用JavaScript技术实现前端界面,确保系统操作的流畅性和用户体验。系统实现后经过多轮测试,结果表明其功能完整且用户体验良好。打铁花非遗文化传播系统设计与实现的构建与部署不仅能够简化非遗项目的管理和服务流程,提升非遗文化可见度和用户互动性,也为非遗的保护和传承提供了新的思路和途径,并促进非遗传播的信息化及商业化发展,具有重要的现实意义和推广价值。
关键词:打铁花非遗文化传播系统设计与实现;springboot;Java;非遗文化。
With the acceleration of modernization, China's traditional intangible cultural heritage (hereinafter referred to as "ICH") faces severe challenges such as inheritance gaps, single communication channels, and low public participation. Da Tie Hua, a traditional folk art with a history of over a thousand years, is renowned for its spectacular visual effects and profound cultural connotations. However, its inheritance and promotion still mainly rely on offline performances, lacking systematic and digital means of dissemination. To address this issue, this paper designs and implements a Da Tie Hua ICH cultural dissemination system based on the Spring Boot framework.
This study, through requirement analysis, system design, and development implementation, combines the concept of front-end and back-end separation, uses the Spring Boot framework with a MySQL database to build the back-end services, and employs JavaScript technology to implement the front-end interface, ensuring smooth system operation and user experience. After multiple rounds of testing, the results show that the system is fully functional and provides a good user experience. The design and implementation of the Da Tie Hua ICH cultural dissemination system not only simplify the management and service processes of ICH projects, enhance the visibility of ICH culture and user interaction, but also provide new ideas and approaches for the protection and inheritance of ICH. Moreover, it promotes the informatization and commercialization of ICH dissemination, holding significant practical significance and promotion value.
Keywords: Design and Implementation of the Intangible Cultural Heritage System for Iron Flower Performance; SpringBoot; Java; Intangible Cultural Heritage.
目 录
第一章绪论
1.1选题背景
非物质文化遗产是包括口头传承、表演艺术、社会习俗和传统技艺等在内的人类文化遗产的重要组成部分。在“十四五”规划明确提出实施中华文化数字化战略及国家大力推动非物质文化遗产保护传承的宏观背景下,作为千年民间艺术瑰宝的“打铁花”虽以其惊险壮观的视觉效果承载着深厚的中原文化内涵,却在现代化进程中面临着严峻的生存挑战:一方面,因其技艺高难、危险系数大且经济效益不稳定,导致年轻传承人匮乏,出现明显的代际断层;另一方面,其传播方式长期依赖线下节庆演出,受时空限制极大,且网络相关信息呈现碎片化、非系统化甚至误读化特征,缺乏权威统一的展示窗口与深度互动渠道,同时传统的人工管理模式也难以适应现代文旅市场的精细化运营需求。面对这一困境,利用现代信息技术打破物理边界、重构传播生态已成为非遗活态传承的必由之路,而Spring Boot框架凭借其快速开发、高并发处理能力、丰富的生态组件及前后端分离架构的灵活性,能够高效构建集技艺展示、文化科普、活动预约、社区互动及数据管理于一体的综合性传播平台,不仅有助于系统性整合打铁花分散的文化资源、纠正信息偏差、降低公众认知门槛,更能通过数字化手段拓宽受众群体、激发青年兴趣,为这项濒危非遗项目的可持续传承与创新性发展提供坚实的技术支撑与实践路径。
1.2研究目的及意义
本研究旨在设计并实现一套基于Spring Boot框架的打铁花非遗文化传播系统[1],通过构建集数字化展示、沉浸式体验、互动化交流及智能化管理于一体的综合平台,系统性解决当前打铁花技艺面临的资料分散、传播受限、传承断层及管理粗放等核心痛点,从而实现非遗资源从“静态保存”向“活态传承”的数字化转型。其研究意义在于,理论层面丰富了非物质文化遗产数字化保护的案例库,探索了传统民间技艺与现代Web技术深度融合的新范式,为同类高危、小众非遗项目的数字化生存提供了可复制的方法论;实践层面则有效打破了打铁花传播的时空壁垒,让公众能随时随地领略其文化魅力,显著提升了社会认知度与参与度,同时为传承人提供了便捷的技艺记录、活动组织与粉丝运营工具,增强了其自我造血能力,最终助力打铁花在数字时代焕发新生,推动中华优秀传统文化的创造性转化与创新性发展,坚定文化自信[2]。
1.3国内外研究现状
1.3.1国外研究现状
在国际上,非物质文化遗产的研究已经取得了显著的进展。联合国教科文组织自2003年以来,通过《保护非物质文化遗产公约》等手段,推动各国重视非遗保护[3],为全球非遗的保护提供了法律框架和方向。国外在非物质文化遗产数字化方面虽有多元化探索(如欧盟的数字文化遗产平台),但针对中国特有的高危技艺类非遗如打铁花的专门研究较少,其经验主要体现在通用技术与方法论层面,尚无法直接套用于我国复杂的非遗生态[4]。
国外部分国家的非遗项目与旅游产业结合紧密,并利用互联网技术创建非遗在线数据库,方便公众获取和参与,例如日本的“和服制作技艺”被结合到旅游推广中,形成文化旅游的亮点,既保护了传统工艺,也带动了地方经济,同时借助数字化展示和线上体验项目吸引了大量游客和学者,促进了该文化的传承与发展。韩国则通过“K-Culture Portal”等平台,将非遗与文化旅游、创意产业深度融合,推出了线上体验、虚拟展览、数字文创产品销售等功能,增强了公众参与感。国外在非遗保护方面强调跨学科合作,注重将非遗与社区发展相结合,提升非遗的社会价值和经济效益[5]。
1.3.2国内研究现状
当前,国内关于打铁花非遗文化的传播呈现出“线上流量爆发”与“线下文旅融合”双轮驱动的显著特征,但系统性数字化平台建设仍显滞后。一方面,以抖音、快手、B站为代表的短视频平台已成为打铁花传播的主阵地[6],据《2025抖音非遗数据报告》显示,打铁花凭借其极具视觉冲击力的“火树银花”效果,成为非遗类目的顶流IP,相关视频播放量高达数百亿次,00后创作者占比显著提升,青年博主通过视听语言创新(如慢动作特写、声景分离、AI特效)成功重构了打铁花的叙事范式[7],使其从传统的节庆仪式转变为符合碎片化阅读习惯的“网红”文化符号;另一方面,线下传承模式正经历深刻的商业化转型,山西司徒小镇“千年铁魂”、河南确山铁花等知名品牌通过“非遗+景区”、“非遗+夜经济”的模式,将打铁花打造为地域文化名片,甚至输出至全国多地,形成了规模化、产业化的演艺集群[8]。
然而,繁荣背后亦隐藏着深层危机:现有的传播多依赖于第三方商业平台的算法推荐,内容呈现高度碎片化、娱乐化,缺乏对打铁花历史渊源、技艺原理、文化内涵的深度系统梳理,导致公众认知停留在“看热闹”层面,难以形成深度的文化认同;同时,各传承团队之间信息孤岛现象严重,缺乏统一的数字化档案库、传承人管理系统及官方权威的互动社区,传统的人工管理模式难以应对日益增长的游客预约、票务管理及粉丝运营需求。
第二章
相关技术介绍
2.1系统开发及运行环境
本打铁花非遗文化传播系统设计与实现基于springboot框架进行开发,为确保系统开发、测试及稳定运行,需满足以下软硬件环境要求:
系统部署与运行环境为Windows 10操作系统,处理器采用Intel Core i5-13600KF,配备16GB内存,硬盘可用空间不低于500GB。开发阶段需配置JDK 1.8 及以上版本,数据库采用MySQL 5.6以上,开发工具选用IntelliJ IDEA。系统前端页面兼容主流浏览器,推荐使用Google Chrome 浏览器进行访问与测试,同时需保持稳定的网络连接,具体开发及运行环境配置如下表所示。
表2-1 环境配置表表
| 配置项 | 环境要求 |
| 操作系统 | Windows 10(64位) |
| 处理器 | Intel Core i5-13600KF |
| 内存 | 16GB RAM 或更高 |
| 硬盘空间 | 500GB 可用空间 |
| Java开发环境 | JDK 1.8 或以上版本 |
| 技术框架 | springboot |
| 数据库系统 | MySQL 5.6以上 |
| 数据库管理工具 | Navicat |
| 开发工具 | IntelliJ IDEA |
| 浏览器 | Google Chrome(最新版本) |
| 网络环境 | 稳定的互联网连接 |
2.2开发技术
该系统采用当前主流的B/S(Browser/Server)架构模式进行设计与开发,整体技术栈以Java语言为核心,结合SpringBoot框架构建稳定高效的后端服务,利用JavaScript实现灵活的前端交互,借助MySQL保障数据持久化存储,配合IntelliJ IDEA与Navicat等专业工具,形成了一套成熟、可靠的技术实现方案,能够快速构建一个功能完整、结构清晰、易于维护的Web应用系统,全面支撑打铁花非遗文化传播系统设计与实现的各项功能需求。
2.2.1Java语言
Java最为一种广泛应用于企业级系统开发的面向对象编程语言[9],具备良好的跨平台能力、清晰的语法结构以及强大的生态系统,得益于其“一次编写,随处运行”的特性,Java能够在不同操作系统上稳定执行,极大提升了软件的可移植性。同时,Java拥有成熟的开发框架、丰富的类库支持以及活跃的技术社区,为复杂系统的构建提供了有力保障。由于在安全性、稳定性和并发处理能力方面的突出表现,Java特别适用于对可靠性要求较高的后端服务开发。在本系统中,Java作为基础编程语言,主要用于实现核心业务逻辑的编码、数据对象的封装以及异常情况的统一处理,有效支撑了系统的模块化设计与长期可维护性,为整体架构的稳健运行提供了坚实的技术基础[10]。
2.2.2MySQL数据库
MySQL遵循标准SQL语言规范,支持事务处理(ACID特性)、数据完整性约束以及多用户并发访问控制[11],能够有效支撑复杂的数据查询、更新操作与业务逻辑处理,是当前后端数据持久化存储的主流技术之一。在本系统中,MySQL承担核心数据的存储与管理功能,用于持久化保存包括用户账户信息、项目数据及系统配置等关键业务数据。通过合理的表结构设计、索引优化与事务管理机制,确保了数据在读写过程中的准确性、一致性和安全性,为系统的稳定运行提供了可靠的数据支撑[12]。
2.2.3springboot框架
SpringBoot是基于Spring生态的现代化轻量级框架[13],旨在提升企业级 Java 应用的开发效率,降低项目初始化与配置的复杂度。该框架通过自动配置机制、起步依赖以及内嵌式 Web 服务器(如 Tomcat)等特性,有效减少了传统 Spring 项目中大量冗余的 XML 配置文件,使开发者能够更专注于业务逻辑的实现,实现应用的快速搭建、开发与部署。在本系统中,SpringBoot 作为后端核心框架,承担了整体服务的构建与集成任务为系统的稳定性、可维护性与可扩展性提供了有力支撑。基于其模块化特性,系统实现了RESTful风格的接口设计,统一管理项目依赖,并集成了用户认证、安全控制、业务逻辑处理、数据访问等多个功能组件,同时通过整合Spring Security框架,系统完成了用户身份认证、权限分级控制等安全机制的实现;在数据持久化方面,结合Spring Data JPA或 MyBatis技术,高效完成数据库的增删改查操作,提升了数据交互的灵活性与可维护性[14]。
2.2.4JavaScript
JavaScript是一种轻量级的脚本语言,通常用于网页开发,使开发者能够为网页增添动态效果和用户交互功能,配合前端框架(如jQuery、Vue.js或React)使用[15],可以构建现代的响应式网页应用。它运行在浏览器端,能够响应用户操作、操作DOM元素、发送异步请求(AJAX),实现页面无刷新更新。在本系统中,JavaScript用于表单验证、页面跳转控制、数据动态加载等功能,增强用户操作体验。前端页面通过HTTP请求与后端API进行数据交互,实现前后端分离或半分离的开发模式,保证系统的可扩展性与响应速度。
2.2.5B/S架构
B/S架构即浏览器/服务器架构,用户通过浏览器访问部署在服务器上的Web应用[16],无需安装专用客户端。该架构具有维护方便、跨平台性强、易于升级等优点。本系统采用B/S模式,用户只需通过Chrome等主流浏览器即可访问非遗推广平台,实现信息浏览、功能管理等操作。
2.3开发工具
2.3.1Navicat
Navicat是一款强大的数据库管理和开发工具,支持MySQL、Oracle、SQL Server等多种数据库[17],能够提供直观的图形化界面,可用于数据库设计、SQL编辑、数据同步、备份与恢复等操作。在本系统开发过程中,Navicat用于数据库建模、数据调试和日常维护,提升数据库操作效率[18]。
2.3.2IntelliJ IDEA
IntelliJ IDEA是由JetBrains公司开发的Java集成开发环境,被誉为“最智能的IDE”,具备强大的代码提示、重构、调试、版本控制集成(Git/SVN)和插件扩展能力,特别适合SpringBoot等现代Java项目的开发。在本系统中,IntelliJ IDEA作为主要开发工具,提供了从项目创建、编码、测试到部署的全流程支持,极大提升了开发效率与代码质量。
第三章
系统分析
3.1需求分析
3.1.1任务概述
本研究旨在设计和实现一套打铁花非遗文化传播系统,提供一个操作高效、使用便捷的非遗项目管理、交流与交易平台工具,满足用户在线浏览信息、交流沟通、非遗资讯、文化信息、活动信息报名等需求,同时为管理员提供全面的管理工具,以高效的管理非遗文化信息、活动信息、系统管理、交流管理等信息。系统将在Spring Boot框架下进行开发,以实现高性能和可扩展性[19]。
根据对市场及用户需求分析,在新媒体时代,本研究所实现的打铁花非遗文化传播系统设计与实现的使用者主要分为普通用户和管理员,在系统中,不同的角色承担着各自的职责和任务,每类用户在系统内的功能和权限有所不同,共同实现和保证本系统的正常运转。系统将支持注册与登录、文化信息管理、活动信息管理、活动报名管理、交流论坛、公告与资讯发布、数据统计等多项功能,基本实现整个打铁花非物质文化传播项目推广业务服务管理,有效简化管理、交流、报名等流程,提高服务管理效率与质量,改善用户体验[20]。
3.1.2功能需求分析
- 注册登录:游客可以通过注册成为系统用户,注册成功后,可使用账号密码进行登录。
- 首页:普通用户登录后首先进入前台首页界面,可查看轮播图、文化信息推荐、活动信息推荐等信息,并可使用系统其他功能。
- 交流论坛:普通用户可浏览文化论坛的交流帖子,并支持分享自己的经验与问题,允许点赞、收藏交流帖子。
- 系统公告:普通用户可查看包括关于我们、联系方式、网站介绍等管理员发布的所有公告消息,点击可浏览详情内容。
- 非遗资讯:普通用户可查看管理员发布的所有非遗资讯信息,支持局部搜索,热门文章推荐,点击可查看详情,进行点赞、收藏和评论。
- AI问答:用户可以直接打开AI窗口进行咨询问答。
- 好友聊天:用户可以选择添加用户进行线上聊天。
- 文化信息:用户可以查看文化信息详情,包括文化标题、类型、资源、文化背景、文化详情等信息,可以进行点赞收藏和评论。
- 活动信息:普通用户可搜索和浏览活动信息内容,允许点赞、收藏和评论霍东阁报名信息,实现在线报名申请功能,支持提交报名信息。
- 我的主页:普通用户可在我的主页查看个人资料卡,包括账号信息、动态、关注及粉丝等内容。
- 我的账户:普通用户可在我的账户中对个人资料进行管理,包括修改密码和修改资料。
- 个人中心:普通用户可在个人中心对个人首页、活动报名、交流论坛、收藏记录、点赞记录、浏览记录等信息进行管控,实现相关管理操作。
打铁花非遗文化传播系统设计与实现的普通用户角色用例图如图3-1所示。
图3-1 普通用户用例图
- 管理员功能需求
- 登录:管理员账号密码由系统生成,使用账号密码可登录系统后台,使用系统功能进行权限内管理,支持修改个人信息和密码。
- 数据分析:管理员登录系统后首先进入后台首页界面,可查看所有的用户状态、数量、评论等计信息数据分析图表。
- 角色管理:管理员可管理系统用户信息,包括普通用户和管理员等,支持添加、封禁、查询及审核系统用户信息。
- 文化信息管理:管理员可管理文化信息列表,支持发布和更新文化信息,提供关键字搜索,允许删除无效内容,并可管控其评论。
- 活动信息管理:理员可管理活动信息列表,支持发布和更新活动信息,提供关键字搜索,允许删除无效内容,并可管控其评论。
- 活动报名管理:管理员可以查看管理活动报名列表并进行审核。
- 系统管理:管理员可管理首页的轮播图,支持上传和删除轮播图片,并可更新轮播图跳转链接。
- 系统公告管理:管理员可管理公告消息信息,允许发布及更新公告消息,并可进行查询和删除操作。
- 新闻管理:管理员可管理非遗资讯和资讯分类等信息,支持发布和更新非遗资讯,提供搜索功能,可删除无效资讯,并进行分类管理,允许管控评论内容。
- 交流管理:管理员可管理文化论坛和资讯分类等信息,支持发布和更新文化论坛,并进行分类管理,提供搜索和删除操作,实现置顶功能,允许管控评论内容
- 操作日志:管理员可以查看所有操作日期内容记录信息。
- Iframe模块:管理员可以查看AI问答页面信息。
打铁花非遗文化传播系统设计与实现的管理员角色用例图如如图3-2所示。
图3-2管理员用例图
3.1.3性能需求分析
在开发打铁花非遗文化传播系统设计与实现时,性能需求是确保系统高效、可靠的重要组成部分,可以为系统的设计、开发和后期维护提供指导,确保系统在实际运行中具有良好的性能表现,满足用户需求。下面是针对该系统的性能需求详细分析。
- 响应时间
用户请求响应时间:系统对用户的请求(如页面加载、搜索查询)应在2秒内完成,以保证用户能够快速获得所需信息,提升用户体验。
数据处理时间:对于较为复杂的数据处理或计算,如报告生成,系统应在10秒内完成。
- 并发用户处理能力
并发访问负载:系统应能够支持至少1000个并发用户同时在线访问,能够有效处理高峰时期的访问需求。
会话维持能力:系统在高负载情况下应能够保持稳定的会话状态,确保用户不会因超时而被迫重新登录。
- 数据存取性能
数据库查询性能:系统的数据库查询平均响应时间不应超过1秒,对于频繁查询的数据,应使用缓存机制,以减少数据库负担。
数据上传与下载速度:用户在上传和下载文件(如图片、视频等)时,数据传输速度应至少达到每秒1MB,以提高用户体验。
- 稳定性与可用性
系统稳定性:在正常负载情况下,系统应保持99.9%的可用性,确保大多数情况下用户能够顺利访问。
故障恢复时间:系统在发生故障后的恢复时间应不超过30分钟,以最大限度减少对用户的影响。
3.2系统可行性
3.2.1技术可行性
本系统采用当前成熟且广泛应用的技术栈,开发资源丰富具备良好的技术可行性。后端基于Java语言和SpringBoot框架构建,SpringBoot具有自动配置、内嵌服务器、简化依赖管理等优势,能够快速搭建稳定高效的Web应用服务,支持RESTful API设计,便于前后端分离开发。数据库选用MySQL,作为开源的关系型数据库,具备高可靠性、良好的事务支持和成熟的生态。前端利用JavaScript结合HTML/CSS实现用户界面交互,兼容主流浏览器,提升用户体验。系统采用B/S架构,用户仅需通过浏览器即可访问,无需安装额外客户端,部署和维护成本低。
3.2.2操作可行性
该系统在设计过程中充分考虑了用户的操作习惯与使用便捷性,面向不同角色提供差异化功能界面,操作流程简洁明了。系统界面采用响应式设计,适配PC端主流浏览器(如Chrome、Firefox),确保操作流畅。此外,系统提供清晰的导航结构、提示信息和操作引导,能够降低用户学习成本。对于管理员,后台配备可视化数据看板与批量处理功能,提升管理效率。整体系统无需复杂培训即可上手使用,符合各类用户的实际操作需求,具备较强的操作可行性。
3.2.3经济可行性
本系统在开发与运行过程中具有较高的经济可行性。开发阶段所采用的技术组件,如Java、SpringBoot及MySQL等技术均为开源免费资源,开发工具IntelliJ IDEA社区版、Navicat基础功能等也可满足基本开发需求,大幅降低了软件授权成本。服务器部署可选择如阿里云、腾讯云等云服务商的中低配ECS实例,结合CDN与数据库服务,初期投入较小,且支持按需扩展,避免资源浪费。系统上线后可通过多种方式实现可持续运营,如文创商品销售、项目众筹分成、政府文化项目资助、企业合作推广等,具备潜在的收益来源。同时,系统有助于提升非遗项目的社会关注度与传播效率,间接促进文化产业发展,带来长期社会效益。因此,从投入产出比来看,系统建设成本可控,后期运维费用合理,具备良好的经济可行性。
第四章
系统设计
4.1系统架构设计
从技术实现的角度来看,打铁花非遗文化传播系统设计与实现的整体架构设计对于系统的稳定性、可维护性与功能扩展具有决定性作用。本系统采用经典的MVC(Model-View-Controller)分层架构模式,将系统划分为三个核心层次:表现层、业务逻辑层与数据访问层,实现各模块之间的职责分离与松耦合。其中,表现层主要负责用户界面的呈现与前端交互,接收用户请求并返回响应结果,业务逻辑层作为系统的核心处理单元,数据访问层则专注于与数据库进行交互,完成数据的持久化存储、查询与更新操作。通过这种分层设计,系统在结构上更加清晰,有利于代码的组织与维护,同时提升了模块的独立性与可重用性,为后续功能迭代和性能优化提供了良好的技术基础。系统整体架构如图4-1所示。
图4-1 系统架构图
4.2总体功能设计
整个打铁花非遗文化传播系统设计与实现的系统功能主要分为普通用户和管理员模块两大部分,主要集成了后台数据分析、角色管理、活动信息、文化信息、交流论坛、系统管理、系统公告管理、资源管理、操作日志等子功能,功能模块设计如图4-3所示。
图4-3 系统后台功能结构图
4.3系统流程设计
4.3.1注册登录流程
系统将面向不同角色提供统一的账户管理机制,确保其能够合法访问系统资源并管理个人数据。在登录界面,用户可根据自身账户状态选择相应的操作路径:未注册用户可点击“注册”按钮,进入注册页面,填写必要信息并完成账号的创建;而已注册用户则可选择“登录”选项,跳转至登录界面,输入正确的用户名与密码进行身份认证,经系统验证通过后进入相应功能界面。注册登录流程如图4-4所示。
图4-4 注册登录流程图
4.3.2系统操作流程
用户通过浏览器访问系统的指定URL,即可进入应用程序的主页面。在登录界面,用户可根据自身账户状态选择相应的操作路径,系统在后台对登录凭证进行验证,确认无误后,用户将被授权进入系统的核心功能操作界面。在核心功能操作界面中,用户可根据导航提示和功能布局,依次开展各项业务操作。系统操作流程如图4-5所示。
图4-5 系统操作流程图
4.3.3查询信息流程
用户可通过在系统搜索框中输入关键词,实现对系统内海量数据的快速查找。在输入所需查询的关键字并确认操作后,系统将启动检索机制,对后台数据库进行匹配查询,并将与关键词相关的结果进行筛选与整理,最终以结构化形式呈现于系统界面,查询信息流程如图4-6所示。
图4-6 查询信息流程图
4.3.4添加及修改信息流程
为实现系统的有效管理与数据维护,用户需先登录该软件,方可基于自身权限开展相关操作。登录成功后,管理员具备添加各类信息的权限,而用户则可在其权限范围内录入或更新自身相关信息。当需要添加新数据或对已有数据进行修改时,用户可根据界面提示,进入编辑界面,并输入更新后的信息并提交。系统在提交前会对输入内容进行合法性校验,包括字段格式、数据类型、必填项完整性等。若检测到数据不符合预设规则,系统将提示错误信息,要求用户重新填写;若校验通过,系统将更新后的数据持久化存储至数据库,并反馈“添加或修改成功”的操作结果,数据添加及修改流程如图4-7所示。
图4-7 添加及修改信息流程图
4.4数据库设计
4.4.1数据库E-R图设计
在数据库的概念结构设计阶段,E-R模型作为一种有效的建模工具,提供了用于描述现实世界中数据对象(即实体)、其内在特征(属性)以及实体间关联关系的图形化表达方法。E-R图能够直观地展现系统核心数据的组织结构与逻辑关联,是构建数据库逻辑模型的重要基础。基于对打铁花非遗文化传播系统设计与实现的需求分析与功能梳理,本文设计了系统的整体E-R模型,用以反映管理员、普通用户、文化信息、活动信息、活动报名、新闻资讯等关键实体及其相互关系。该系统总体E-R图如图4-8 所示。
图4-8 系统总体E-R图
4.4.2数据库关系表设计
本打铁花非遗文化传播系统设计与实现选用MySQL作为核心数据库管理系统,负责实现各类业务数据的持久化存储与高效访问。数据库由多个数据表构成,各表之间通过外键约束建立关联,完整反映系统中实体间的逻辑关系。根据前期概念设计阶段所构建的E-R模型,系统将各个实体转化为对应的数据表结构,确保数据组织的规范性与一致性。
由于系统涉及的功能模块较多,数据表数量较为庞大,为便于说明,下面仅选取其中若干核心业务表进行结构展示与字段说明,以体现数据库设计的关键细节与实现思路。
表 4-1-access_token(登陆访问时长)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | 是 | 否 | 点击数 | |
| 5 | praise_len | int | 是 | 否 | 点赞数 | |
| 6 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-3-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-4-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | user_id | int | 是 | 是 | 收藏人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-7-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID | |
| 12 | hidden | tinyint | 否 | 否 | 是否隐藏 | |
| 13 | sticky | tinyint | 否 | 否 | 是否置顶 |
表 4-8-cultural_information(文化信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | cultural_information_id | int | 是 | 是 | 文化信息ID | |
| 2 | culture_number | varchar | 64 | 否 | 否 | 文化编号 |
| 3 | culture_title | varchar | 64 | 否 | 否 | 文化标题 |
| 4 | type_of_culture | varchar | 64 | 否 | 否 | 文化类型 |
| 5 | cultural_pictures | varchar | 255 | 否 | 否 | 文化图片 |
| 6 | culture_vuser_ideo | varchar | 255 | 否 | 否 | 文化视频 |
| 7 | cultural_resources | varchar | 255 | 否 | 否 | 文化资源 |
| 8 | cultural_background | text | 65535 | 否 | 否 | 文化背景 |
| 9 | cultural_specificss | longtext | 4294967295 | 否 | 否 | 文化详情 |
| 10 | hits | int | 是 | 否 | 点击数 | |
| 11 | praise_len | int | 是 | 否 | 点赞数 | |
| 12 | collect_len | int | 是 | 否 | 收藏数 | |
| 13 | comment_len | int | 是 | 否 | 评论数 | |
| 14 | recommend | int | 是 | 否 | 智能推荐 | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | create_by | int | 是 | 否 | 创建用户ID | |
| 17 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-event_information(活动信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | event_information_id | int | 是 | 是 | 活动信息ID | |
| 2 | activity_number | varchar | 64 | 否 | 否 | 活动编号 |
| 3 | activity_name | varchar | 64 | 否 | 否 | 活动名称 |
| 4 | activity_type | varchar | 64 | 否 | 否 | 活动类型 |
| 5 | activity_location | varchar | 64 | 否 | 否 | 活动地点 |
| 6 | activity_date | date | 否 | 否 | 活动日期 | |
| 7 | activity_picture | varchar | 255 | 否 | 否 | 活动图片 |
| 8 | activity_introduction | text | 65535 | 否 | 否 | 活动介绍 |
| 9 | hits | int | 是 | 否 | 点击数 | |
| 10 | praise_len | int | 是 | 否 | 点赞数 | |
| 11 | collect_len | int | 是 | 否 | 收藏数 | |
| 12 | comment_len | int | 是 | 否 | 评论数 | |
| 13 | recommend | int | 是 | 否 | 智能推荐 | |
| 14 | event_registration_limit_times | int | 是 | 否 | 报名限制次数 | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | create_by | int | 是 | 否 | 创建用户ID | |
| 17 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-10-event_registration(活动报名)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | event_registration_id | int | 是 | 是 | 活动报名ID | |
| 2 | activity_number | varchar | 64 | 否 | 否 | 活动编号 |
| 3 | activity_name | varchar | 64 | 否 | 否 | 活动名称 |
| 4 | activity_type | varchar | 64 | 否 | 否 | 活动类型 |
| 5 | activity_time | date | 否 | 否 | 活动时间 | |
| 6 | activity_location | varchar | 64 | 否 | 否 | 活动地点 |
| 7 | ordinary_user | int | 否 | 否 | 普通用户 | |
| 8 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 9 | users_mobile_phone | varchar | 64 | 否 | 否 | 用户手机 |
| 10 | registration_time | datetime | 否 | 否 | 报名时间 | |
| 11 | number_of_registrations | double | 否 | 否 | 报名人数 | |
| 12 | registration_notes | text | 65535 | 否 | 否 | 报名备注 |
| 13 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 14 | create_time | datetime | 是 | 否 | 创建时间 | |
| 15 | create_by | int | 是 | 否 | 创建用户ID | |
| 16 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 17 | extra | text | 65535 | 否 | 否 | 额外信息 |
| 18 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 19 | source_id | int | 否 | 否 | 来源ID | |
| 20 | source_user_id | int | 否 | 否 | 来源用户 |
表 4-11-follow(用户关注)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | follow_id | int | 是 | 是 | 用户关注ID | |
| 2 | follower_id | int | 是 | 是 | 关注人ID | |
| 3 | follower_avatar | varchar | 255 | 否 | 否 | 关注人头像 |
| 4 | follower_nickname | varchar | 255 | 否 | 否 | 关注人昵称 |
| 5 | followed_id | int | 是 | 是 | 被关注人ID | |
| 6 | followed_avatar | varchar | 255 | 否 | 否 | 被关注人头像 |
| 7 | followed_nickname | varchar | 255 | 否 | 否 | 被关注人昵称 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-12-forum(论坛)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | forum_id | mediumint | 是 | 是 | 论坛ID | |
| 2 | display | smallint | 是 | 否 | 排序 | |
| 3 | user_id | mediumint | 是 | 否 | 用户ID | |
| 4 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 5 | praise_len | int | 否 | 否 | 点赞数 | |
| 6 | hits | int | 是 | 否 | 访问数 | |
| 7 | title | varchar | 125 | 是 | 否 | 标题 |
| 8 | keywords | varchar | 125 | 否 | 否 | 关键词 |
| 9 | description | varchar | 255 | 否 | 否 | 描述 |
| 10 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 11 | tag | varchar | 255 | 否 | 否 | 标签 |
| 12 | img | text | 65535 | 否 | 否 | 封面图 |
| 13 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 15 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 16 | avatar | varchar | 255 | 否 | 否 | 发帖人头像 |
| 17 | type | varchar | 64 | 是 | 否 | 论坛分类 |
| 18 | istop | int | 是 | 否 | 是否置顶 |
表 4-13-forum_type(论坛分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 3 | description | varchar | 255 | 否 | 否 | 描述 |
| 4 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 5 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 6 | icon | varchar | 255 | 否 | 否 | 分类图标 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-14-history(浏览记录)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | history_id | int | 是 | 是 | 浏览历史ID | |
| 2 | user_id | int | 是 | 是 | 浏览人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | type | varchar | 64 | 否 | 否 | 分类 |
| 9 | path | varchar | 255 | 否 | 否 | 路由 |
| 10 | params | text | 65535 | 否 | 否 | 参数 |
| 11 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | hits_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 否 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID |
表 4-16-message_inform(通知记录)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | message_inform_id | int | 是 | 是 | 通知ID | |
| 2 | user_id | int | 是 | 是 | 通知人ID | |
| 3 | title | varchar | 255 | 否 | 否 | 标题 |
| 4 | state | varchar | 255 | 否 | 否 | 状态 |
| 5 | type | varchar | 64 | 否 | 否 | 分类 |
| 6 | content | varchar | 255 | 否 | 否 | 内容 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-17-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-18-operation_log(操作日志表)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | operation_log_id | int | 是 | 是 | 操作日志ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户角色 |
| 3 | user_name | varchar | 64 | 否 | 否 | 用户账号 |
| 4 | routes | varchar | 64 | 否 | 否 | 模块名称 |
| 5 | create_time | datetime | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-19-ordinary_user(普通用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | ordinary_user_id | int | 是 | 是 | 普通用户ID | |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | users_mobile_phone | varchar | 16 | 否 | 否 | 用户手机 |
| 4 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 5 | user_id | int | 是 | 否 | 用户ID | |
| 6 | create_time | datetime | 是 | 否 | 创建时间 | |
| 7 | create_by | int | 是 | 否 | 创建用户ID | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-20-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | praise_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 是 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 | |
| 9 | img | varchar | 255 | 否 | 否 | |
| 10 | title | varchar | 255 | 否 | 否 |
表 4-21-sensitive_vocabulary(敏感词汇)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | sensitive_vocabulary_id | int | 是 | 是 | 敏感词汇ID | |
| 2 | sensitive_vocabulary | varchar | 64 | 否 | 否 | 敏感词汇 |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-22-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | slides_id | int | 是 | 是 | 轮播图ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-23-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-24-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | 是 | 是 | 用户ID | |
| 2 | state | smallint | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) | |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | 否 | 否 | 上次登录时间 | |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) | |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) | |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 |
表 4-25-user_chat_friend(聊天用户好友)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_chat_friend_id | int | 是 | 是 | ID | |
| 2 | user_id | int | 是 | 否 | 用户ID | |
| 3 | friend_user_id | int | 是 | 否 | 用户好友ID | |
| 4 | friend_user_name | varchar | 255 | 否 | 否 | 好友名称 |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-26-user_chat_group(聊天用户群聊)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_chat_group_id | int | 是 | 是 | ID | |
| 2 | group_id | int | 否 | 否 | 群聊ID | |
| 3 | group_name | varchar | 255 | 否 | 否 | 群聊名称 |
| 4 | user_id | int | 否 | 否 | 用户ID | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-27-user_chat_read(聊天用户消息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_chat_read_id | varchar | 255 | 是 | 是 | ID |
| 2 | user_id | int | 否 | 否 | 接收人ID | |
| 3 | send_user_id | int | 否 | 否 | 发送人ID | |
| 4 | group_id | int | 否 | 否 | 群聊ID | |
| 5 | type | int | 否 | 否 | 类型1-点对点消息,2-群聊消息 | |
| 6 | create_time | timestamp | 否 | 否 | 时间 | |
| 7 | message | text | 65535 | 否 | 否 | 消息 |
表 4-28-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | register | smallint | 否 | 否 | 注册位置 | |
| 9 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
第五章
系统实现
5.1普通用户功能模块
5.1.1用户注册子模块
用户可通过系统的注册功能创建个人账户。在注册过程中,需填写用户名、登录密码、电子邮箱或手机号码等必要信息。系统将对提交的数据进行完整性与格式校验,包括密码强度、邮箱有效性或手机号格式的验证,并检查用户名及联系方式是否已存在,以确保信息的唯一性。校验通过后,用户数据将被加密存储至数据库,保障信息安全。注册界面设计如下图所示。
图5-1 用户注册界面
5.1.2用户登录子模块
用户登录模块为用户提供一种安全、便捷的身份认证途径。登录界面采用简洁直观的布局设计,用户仅需在指定字段中输入用户名和密码,系统即对其进行身份核验。验证通过后,用户将自动跳转至系统主页面,进入相应的功能操作环境。针对忘记密码的情况,系统提供了“忘记密码”功能,支持通过注册时绑定的电子邮箱或手机号码进行账户恢复。登录界面设计如下图所示。
图5-2 用户登录界面
5.1.3前台首页子模块
前台首页作为用户进入系统的第一界面,集中展示了系统的核心功能模块与平台特色内容,并通过清晰的导航链接帮助用户快速跳转至所需功能区域,实现高效浏览与信息检索。在界面设计上,采用“上中下”三段式结构布局,设计简洁大方,优化排版布局与色彩搭配,提升整体视觉效果。前台首页界面设计如下图所示。
图5-3 前台首页界面
5.1.4文化信息子模块
文化信息:用户可以查看文化信息详情,包括文化标题、类型、资源、文化背景、文化详情等信息,可以进行点赞收藏和评论。界面设计如下图所示。
图5-4 文化信息界面
5.1.5活动信息子模块
活动信息:普通用户可搜索和浏览活动信息内容,允许点赞、收藏和评论霍东阁报名信息,实现在线报名申请功能,支持提交报名信息。界面设计如下图所示。
图5-5 活动信息界面
图5-6 活动报名申请界面
5.1.6个人中心子模块
个人中心:普通用户可在个人中心对个人首页、活动报名、交流论坛、收藏记录、点赞记录、浏览记录等信息进行管控,实现相关管理操作。界面设计如下图所示。
图5-7 个人中心界面
5.2管理员功能模块
5.2.1文化信息管理子模块
文化信息管理:管理员可管理文化信息列表,支持发布和更新文化信息,提供关键字搜索,允许删除无效内容,并可管控其评论。界面设计如下图所示。
图5-8 文化信息管理界面
5.2.2活动信息管理子模块
活动信息管理:理员可管理活动信息列表,支持发布和更新活动信息,提供关键字搜索,允许删除无效内容,并可管控其评论。界面设计如下图所示。
图5-9 活动信息管理界面
5.2.3系统管理管理子模块
系统管理:管理员可管理首页的轮播图,支持上传和删除轮播图片,并可更新轮播图跳转链接。界面设计如下图所示。
图5-10 系统管理界面
5.2.4新闻管理管理子模块
新闻管理:管理员可管理非遗资讯和资讯分类等信息,支持发布和更新非遗资讯,提供搜索功能,可删除无效资讯,并进行分类管理,允许管控评论内容。界面设计如下图所示。
图5-11 新闻管理界面
第六章
系统测试
6.1测试目的
系统测试的主要目标是验证软件是否满足需求规格说明书中规定的功能、性能及业务要求,并评估其在实际应用环境中的可用性、稳定性和可靠性。通过系统的测试流程,可以识别程序中的缺陷、安全隐患和潜在运行风险,确保数据处理的准确性、完整性和安全性。
6.2测试方法
为全面评估系统的功能实现与性能表现,本研究采用了多元化的测试策略,结合不同测试方法的特点,从多个维度对系统进行验证。在功能验证方面,主要采用黑盒测试技术,依据需求规格设计具有代表性的测试用例,重点考察系统外部行为是否符合预期功能要求,而不依赖于其内部结构或代码实现。例如,在用户登录模块的测试中,通过构造包含有效凭证与无效输入(如错误密码、空字段、超长字符等)的测试数据,验证系统在各类场景下的响应机制与权限控制逻辑是否准确。
在性能评估环节,综合运用压力测试与负载测试手段,模拟多用户并发操作及大规模数据交互的运行环境,以测量系统在高负载条件下的响应延迟、事务处理速率、资源占用情况及服务持续稳定性,进而判断其在实际应用中能否满足性能指标要求。
兼容性验证则通过在多种操作系统平台(如Windows、macOS、Linux)、主流浏览器(如Chrome、Firefox、Safari)以及不同配置的硬件设备上部署系统,检验其运行一致性与界面适配性,确保用户在异构环境中均能获得良好的使用体验。
此外,还实施了异常场景测试,针对输入边界值、非法数据格式及非正常操作流程设计测试用例,评估系统在面对异常输入或突发状况时的容错能力、错误提示机制及自我恢复能力。
6.3测试内容
本次系统测试围绕核心功能模块展开,重点对用户注册、登录、文化信息管理、活动信息管理、活动报名管理、商城中心管理等关键业务流程进行了验证。通过对各项功能的操作路径、输入边界及异常场景的全面测试,评估系统的稳定性与功能正确性。具体测试用例的设计与执行情况如下所示。
表6-1 用户注册功能测试表
| 编号 | 测试描述 | 测试方法 | 预期结果 | 测试结果 |
| TC_01 | 正常用户注册 | 输入有效的用户名、密码、邮箱及手机号并提交 | 用户注册成功,跳转至登录页面 | 符合预期 |
| TC_02 | 注册时用户名已存在 | 使用已注册的用户名进行注册 | 提示“用户名已被占用” | 符合预期 |
| TC_03 | 注册时邮箱格式不正确 | 输入如“abc@123”等非标准邮箱格式 | 提示“邮箱格式无效” | 符合预期 |
| TC_04 | 手机号不符合规范 | 输入非11位或含非法字符的手机号 | 提示“手机号格式错误” | 符合预期 |
| TC_05 | 两次输入密码不一致 | 密码与确认密码字段内容不同 | 提示“两次密码输入不匹配” | 符合预期 |
| TC_06 | 必填项为空提交 | 不填写用户名或密码直接提交 | 提示“请填写完整信息” | 符合预期 |
表6-2 用户登录功能测试表
| 编号 | 测试描述 | 测试方法 | 预期结果 | 测试结果 |
| TC_01 | 正常用户登录 | 输入正确的用户名和密码 | 登录成功,跳转至系统首页 | 符合预期 |
| TC_02 | 输入错误密码进行登录 | 用户名正确,密码错误 | 提示“用户名或密码错误” | 符合预期 |
| TC_03 | 使用未注册的用户名登录 | 输入系统中未注册的用户名 | 提示“该用户不存在” | 符合预期 |
| TC_04 | 用户名为空时尝试登录 | 仅输入密码,用户名留空 | 提示“请输入用户名” | 符合预期 |
| TC_05 | 密码为空时尝试登录 | 仅输入用户名,密码为空 | 提示“请输入密码” | 符合预期 |
表6-3 文化信息管理功能测试表
| 编号 | 测试描述 | 测试方法 | 预期结果 | 测试结果 |
| TC_01 | 管理员发布新的文化信息 | 根据提示填写相关信息并提交 | 文化信息信息添加成功,显示在系统页面 | 符合预期 |
| TC_02 | 查看已添加的文化信息内容 | 进入文化信息页面,选择某一条目 | 成功展示所有文化信息列表及其详情内容 | 符合预期 |
| TC_03 | 编辑文化信息内容信息 | 修改某一信息进行提交保存 | 修改成功,前后端同步更新 | 符合预期 |
| TC_04 | 删除无效或错误的文化信息数据 | 选择某一或多条文化信息数据执行删除操作 | 成功删除,后台与前台均不再显示 | 符合预期 |
| TC_05 | 搜索特定的文化信息数据 | 在搜索框输入特定关键词进行查询 | 显示包含该关键词的文化信息列表结果 | 符合预期 |
表6-4 活动信息管理功能测试表
| 编号 | 测试描述 | 测试方法 | 预期结果 | 测试结果 |
| TC_01 | 普通用户添加新的活动信息 | 根据提示填写相关信息并提交 | 活动信息添加成功,显示在系统页面 | 符合预期 |
| TC_02 | 查看已添加的活动信息内容 | 进入活动信息页面,选择某一条目 | 成功展示所有活动信息列表及其详情内容 | 符合预期 |
| TC_03 | 编辑活动信息内容 | 修改某一信息进行提交保存 | 修改成功,前后端同步更新 | 符合预期 |
| TC_04 | 删除无效或错误的活动信息数据 | 选择某一或多条活动信息数据执行删除操作 | 成功删除,后台与前台均不再显示 | 符合预期 |
| TC_05 | 搜索特定的活动信息数据 | 在搜索框输入特定关键词进行查询 | 显示包含该关键词的活动信息列表结果 | 符合预期 |
| TC_06 | 管理员审核添加的活动信息 | 选择某一活动信息,更新审核状态并提交 | 活动信息审核状态更新成功 | 符合预期 |
表6-5 活动报名管理功能测试表
| 编号 | 测试描述 | 测试方法 | 预期结果 | 测试结果 |
| TC_01 | 管理员发布新的活动报名信息 | 用户根据提示填写相关报名信息并提交 | 活动报名信息添加成功,显示在系统页面 | 符合预期 |
| TC_02 | 查看已添加的活动报名内容 | 进入活动报名页面,选择某一条目 | 成功展示所有活动报名列表及其详情内容 | 符合预期 |
| TC_03 | 编辑活动报名内容信息 | 修改某一信息进行提交保存 | 修改成功,前后端同步更新 | 符合预期 |
| TC_04 | 删除无效或错误的活动报名数据 | 选择某一或多条活动报名数据执行删除操作 | 成功删除,后台与前台均不再显示 | 符合预期 |
| TC_05 | 搜索特定活动报名数据 | 在搜索框输入特定关键词进行查询 | 显示包含该关键词的活动报名列表结果 | 符合预期 |
6.4测试结论
通过对系统开展全面的功能验证、性能评估及可靠性检验,本系统在设定的测试环境中表现出良好的运行状态。各项功能模块均实现了既定设计目标,核心业务流程运行稳定,未出现重大功能异常或导致流程中断的严重缺陷。测试结果表明,所有关键测试用例均已顺利通过,测试覆盖范围达到了预设标准,有效验证了系统在功能完整性、运行稳定性以及环境兼容性等方面的综合表现。整体测试结论表明,系统具备预期的可用性与可靠性,满足上线运行的基本要求。
在本次研究中,主要针对基于Spring Boot框架的打铁花非遗文化传播系统设计与实现进行了全面的设计与实现。系统通过提供多角色用户管理功能,包括普通用户和管理员,确保了不同用户群体的需求得以有效满足。同时,系统集成了文化信息管理、活动报名管理、资源管理、交流管理以及系统管理等多种功能模块,为用户提供了丰富的互动及参与体验。
在技术实现方面,凭借Spring Boot快速开发、良好的社区支持和强大的功能扩展性,为系统构建提供了丰富的解决方案与实践经验,并通过RESTful API的设计,实现了前后端的有效分离,提升了系统的可维护性与可扩展性,同时也保障了数据的安全性与交互的稳定性。系统还实现了数据统计功能,通过对用户行为的分析与功能模块的优化,平台能够更好地满足现代用户对个性化、信息化化非遗服务的需求,推动了非遗文化领域服务向数字化、智能化方向转型。
未来,系统可在现有功能基础上引入大数据分析和协同过滤推荐算法,进一步提升用户体验的个性化和智能化程度。同时,可拓展多语言支持和跨平台适配能力,面向更广泛的用户群体。另外需加强对系统架构的前瞻性设计,尤其是在可扩展性和安全性方面,可以考虑引入更严格的用户认证和数据加密机制,定期进行安全测试,及时修复漏洞,以保障用户信息的安全性。
- 张颖,刘成军,李佳琦,等.新质生产力驱动下承德非遗文化旅游融合发展研究[J].旅游纵览,2025,(13):40-42.
- 陈尚,曾文博.非遗保护视角下文化生态系统的重构与可持续发展[J].参花,2025,(13):41-43.
- 文东平.推动非遗保护从“活态传承”迈向“融合焕新”[J].党建,2026,(03):48-49.
- ]Xu W ,Wu B .Innovation and Development of Intangible Cultural Heritage Protection and Inheritance Under the Background of Artificial Intelligence[J].International Journal of High Speed Electronics and Systems,2025,35(02):DOI:10.1142/S0129156425500132.
- Chigwada J ,Mapara J ,Ngulube P , et al.Influence of Indigenous data governance principles on Indigenous knowledge management: Lessons from the Southern African Intangible Cultural Heritage Project[J].IFLA Journal,2026,52(1):38-47.DOI:10.1177/03400352251331471.
- 周懿.短视频平台对非遗武术传播的赋能作用[J].名作欣赏,2026,(08):8-10.DOI:10.20273/j.cnki.mzxs.2026.08.015.
- 李旭坤,黄博阳.黑龙江非遗IP短视频传播的现存困境及文旅融合升级策略[J].传播与版权,2026,(04):60-63.DOI:10.16852/j.cnki.45-1390/g2.2026.04.013.
- 高文文,颜文华.文旅融合背景下非遗活化利用路径创新——以河南确山打铁花为例[J].北方经贸,2026,(02):152-155.
- 汪泊.Java编程语言在计算机软件开发中的应用[J].软件,2025,46(06):128-130.
- 于吉鹏.基于Java Web的办公自动化系统开发[J].智能城市,2025,11(04):138-140.DOI:10.19301/j.cnki.zncs.2025.04.039.
- 翟凌云.MySQL数据库在分布式系统架构设计中的应用[J].软件,2025,46(04):100-102.
- 相景丽.MySQL数据库技术在校园信息管理中的应用研究[J].信息记录材料,2025,26(03):104-106+131.DOI:10.16009/j.cnki.cn13-1295/tq.2025.03.019.
- 黄蓬国,于晨龙.基于SpringBoot框架的住房保障管理系统的设计与实现[J].中国建设信息化,2025,(11):76-80.DOI:10.26955/j.cnki.2096-0824.2025.11.023.
- 陈蓓蕾,洪年松.基于SpringBoot的数据库接口设计[J].信息与电脑(理论版),2023,35(16):181-183.
- 温彩玲.基于Vue.js和SpringBoot的开放式实训基地管理平台的设计与开发[J].太原城市职业技术学院学报,2025,(03):60-62.DOI:10.16227/j.cnki.tycs.2025.0163.
- 张煜乾.B/S模式的学生信息管理系统设计探讨[J].软件,2025,46(06):107-109.
- 赵新平.MySQL数据库在高并发Web系统中的优化技术[J].软件,2025,46(03):116-119.
- 刘永立.基于SpringBoot和MyBatis的作业管理系统设计[J].电脑编程技巧与维护,2025,(04):86-88.DOI:10.16184/j.cnki.comprg.2025.04.021.
- 朱洁如,杨沛凡,卜俊.地方非遗文化融入项目式“交互设计”课程的教学实践研究[J].工业设计,2026,(02):94-97.DOI:10.26920/j.cnki.231516cn.2026.02.029.
- 徐同磊.新媒体传播视域下的非物质文化遗产数字化保护[J].美术文献,2018,(05):144-145.DOI:10.16585/j.cnki.mswx.2018.05.070.
此次毕业设计的顺利完成,得益于诸多师长、同窗及亲友在学术与生活上的鼎力支持。在此,我谨向所有给予我帮助的人致以最诚挚的谢意。
首先,我要向我的导师致以最深切的感激。在整个毕业设计与论文撰写过程中,导师始终以深厚的学术素养、严谨的治学精神和高度的责任感为我提供悉心指导。从研究方向的确定、理论框架的构建,到数据的分析与文本的反复修改,每一个环节都凝聚着导师的心血。您不仅在学术层面为我指明方向,提出诸多富有建设性的意见,帮助我不断优化研究思路、提升论文质量,更以耐心细致的教诲引导我逐步掌握科学研究的基本方法。同时,我也衷心感谢在求学期间给予我关心与协助的同学及亲友。在毕业设计推进过程中,同学们积极与我交流观点、分享文献资料,并在讨论中提出宝贵建议,极大拓宽了我的研究视角。亲友们的陪伴与鼓励,使我在面对压力时能够保持积极心态,有效调节情绪,维持良好的状态,使我能够心无旁骛地投入学习与研究工作。
正是在各方力量的支持与陪伴下,我才能克服研究过程中的种种挑战,最终完成本毕业设计。这段经历不仅是一次学术训练,更是一段充满成长与感悟的旅程。在此,向所有曾给予我帮助的人致以最真挚的感谢。
附录A:系统关键代码设计
连接数据库的文件在Resources 文件夹下的application.yml文件,代码如图所示。

注册核心代码图
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,代码如图所示。

用户登录核心代码图
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如图所示。

注册核心代码图
通过请求的参数获取一条数据,通过readQuery(),获取URL后面的对象地址,查询FindConfig语句,select筛选Map对象,FIELD为查询字段,未传输的情况下传入“*”,代码如下,代码如图所示。

查询一条数据核心代码图
- 获取列表数据
通过请求的参数获取列表数据,代码如图所示。

获取列表数据核心代码图
- 图片/文件/视频上传
图片/文件/视频等上传方法通过MultipartFile,代码如图所示。

图片/文件/视频上传核心代码图
- 修改数据
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如图所示。

修改数据核心代码图
- 添加数据
新增一条数据,通过post传入一个json对象,然后经过request.getReader(),最后经过readBody()转成一个Map,含有String和Object,key用的是字段名,Object存放数据,最终得到Map,insert用拼装sql,读取body,组装成一个insert对象,runCountSql()语句,代码如图所示。

添加数据核心代码图
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如图示。

删除数据核心代码图
点赞+收藏+关注 → 私信领取本源代码、数据库
305

被折叠的 条评论
为什么被折叠?



