资讯详情 基于SpringBoot+WebSocket的实时火灾报警模拟系统计算机毕业设计(源码+lw+部署文档+讲解等)
📅 2026/10/18 7:58:57
博主介绍✌ 专注于VUE,小程序安卓Java,python,物联网专业有18年开发经验长年从事毕业指导项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题我会尽力帮助你。一、研究目的在现代城市化进程中火灾事故对公共安全和财产安全构成了严重威胁尤其是在高层建筑、工业园区以及老旧小区等易燃易爆环境中火灾的快速蔓延往往导致救援难度加大、伤亡人数上升。为此提升火灾监测与报警系统的实时性与准确性已成为科研与工程实践的重要课题。传统的火灾报警系统多采用集中式传感网络和单一通信协议导致数据传输延迟、信息丢失以及对多点协同响应的支持不足难以满足复杂场景下的即时决策需求。随着互联网技术与物联网设备的快速发展基于WebSocket的双向实时通信已被广泛应用于即时消息推送、在线游戏以及工业控制等领域。SpringBoot框架凭借其简洁的配置方式、强大的社区生态以及对微服务架构的天然支持为构建高可用、可扩展的后端服务提供了理想平台。然而现有研究中缺乏针对火灾报警系统的完整实现案例尤其在模拟环境下验证系统性能与可靠性的工作尚不充分。为填补这一空白本研究旨在通过SpringBoot与WebSocket技术的深度融合构建一个可视化、可扩展的实时火灾报警模拟平台。本研究的主要目的包括首先设计并实现基于SpringBoot的后端服务架构支持多源传感数据接入、事件处理与状态管理其次利用WebSocket实现前后端双向通信使客户端能够即时获取火灾报警信息、设备状态以及历史记录再次通过模拟模块生成多种火灾场景如点燃、烟雾扩散、温度骤升等验证系统在高并发情况下的响应速度与稳定性最后构建可视化仪表盘提供实时数据展示与报警趋势分析为后续研究与实际部署提供参考框架。通过上述目标的实现本研究期望为火灾安全管理提供一种技术可行、易于推广的解决方案并为相关领域的学术探讨与工程实践奠定坚实基础。二、研究意义在城市化快速推进的背景下火灾事故频发导致的人员伤亡与财产损失已成为公共安全领域亟待解决的核心问题。传统火灾报警系统普遍存在数据采集延迟、信息传递不畅以及对多点协同响应支持不足等缺陷这些问题在高层建筑、工业园区及老旧小区等复杂环境中尤为突出。通过构建基于SpringBoot与WebSocket技术的实时火灾报警模拟系统可实现传感器数据的即时采集、事件的快速处理以及报警信息的无延迟推送从而显著提升应急响应速度与决策准确性。该系统能够在模拟环境中复现多种火灾场景验证其在高并发条件下的稳定性与可靠性为实际部署提供可行性评估与性能基准。从技术层面看SpringBoot框架以其模块化、易扩展的特性为后端服务提供了高效的开发与运维环境。结合WebSocket实现双向实时通信可在客户端与服务器之间保持持续连接避免传统HTTP轮询导致的频繁请求与资源浪费。该技术方案不仅降低了系统延迟还提升了网络带宽利用率和系统吞吐量为大规模传感器网络的数据交互提供了可行路径。通过引入消息队列与分布式缓存可进一步实现负载均衡与故障隔离增强系统的容错性与可维护性。这些技术创新为后续在智慧城市、工业互联网等领域的应用奠定了坚实基础。更广泛而言本研究所提出的实时火灾报警模拟平台具有重要的学术与实践价值。学术层面它为火灾安全管理提供了一个可复现、可量化的实验平台便于开展多维度性能评估与算法优化实践层面该平台能够帮助消防部门、物业管理和建筑设计等相关行业快速验证报警系统的部署效果与应急预案从而降低事故风险并提升公共安全水平。综上所述基于SpringBootWebSocket的实时火灾报警模拟系统不仅在技术实现上具备创新性更在提升城市安全治理能力、促进智慧消防发展方面具有深远意义。三、国内外研究现状在全球范围内火灾监测与报警技术已从传统的电磁感应式探测器逐步演进为集成化、网络化的智能系统。早期研究主要聚焦于单点传感器的布置与阈值报警随后随着无线通信技术的发展学术界提出了基于无线传感网络WSN的多点协同检测框架利用IEEE 802.15.4、ZigBee等协议实现传感节点的低功耗数据传输。此类研究强调节点间的数据融合与冗余校验以提升探测准确率并降低误报率。进入二十一世纪后物联网IoT与云计算的兴起为火灾监测提供了更广阔的技术空间研究者开始探索将传感器数据上传至云端进行大规模分析与可视化。典型成果包括利用MQTT协议实现低延迟、低带宽的数据推送并结合深度学习模型对视频监控进行火焰与烟雾检测从而实现多源信息的融合决策。在通信协议层面WebSocket因其支持双向实时通信且兼容HTTP隧道已被部分实验性项目用于火灾报警信息的即时推送。学术论文指出与传统轮询方式相比WebSocket能够显著降低网络延迟并减少服务器负载为需要高频率数据更新的消防系统提供技术支持。与此同时研究者也在探讨基于Edge Computing的分布式处理架构将初级数据预处理与异常检测迁移至边缘节点以减轻云端负担并缩短响应时间。此类工作多以实验平台或仿真环境为载体验证系统在高并发、低时延条件下的可行性。国内研究同样呈现多元化发展趋势。中国高校与科研院所围绕“智慧消防”提出了一系列技术路线包括基于5G网络的远程监控、利用大数据平台进行火灾风险评估以及在高层建筑中部署多层传感网络。学术论文普遍采用CFD计算流体动力学模拟结合实验验证的方法对烟雾扩散与温度梯度进行定量分析并将仿真结果反馈至实时监测系统以实现预警与决策支持的闭环。近年来国内研究者还将SpringBoot等现代后端框架引入消防系统原型设计利用其快速开发与微服务特性构建模块化的报警平台。通过集成WebSocket实现前后端实时交互实验结果显示系统在模拟高并发场景下能够保持低于200毫秒的平均响应时间。尽管国内外在火灾监测技术上已取得诸多进展但仍存在若干亟待解决的问题。首先多源数据融合与智能决策算法尚未形成统一标准导致不同系统间兼容性差其次实时通信协议在高可靠性与低功耗之间的权衡尚未达到最佳平衡点再次仿真平台与实际部署环境的差距使得实验结果难以直接迁移到生产环境。针对这些挑战学术界正在探索基于标准化接口的模块化平台以实现不同传感器、通信协议与算法模块的无缝集成。同时结合5G、Edge Computing与人工智能的多维度协同框架也被视为提升火灾报警系统整体性能的重要方向。综上所述国内外研究在火灾监测与报警技术方面已形成以无线传感网络、物联网、云计算与实时通信协议为核心的技术生态。然而在将这些技术有效整合为一体化、可视化且具备高可靠性的实时火灾报警系统方面仍面临挑战。针对这一空白基于SpringBoot与WebSocket的实时火灾报警模拟系统的研究不仅能够弥补现有技术在实时性与可扩展性上的不足还能为智慧消防领域提供可复制、可推广的技术参考。四、预期达到目标及解决的关键问题本研究的预期目标在于构建一套基于SpringBoot框架与WebSocket协议的实时火灾报警模拟系统该系统能够实现多源传感器数据的即时采集、事件处理与状态管理并通过双向通信将报警信息无延迟推送至前端展示。为满足此目标系统需具备高并发下的低延迟响应、可扩展的微服务架构以及灵活的模拟模块可在不同火灾场景下生成温度、烟雾与火焰等多维度数据以验证系统在真实环境中的鲁棒性。与此同时系统还需提供可视化仪表盘支持实时数据展示、历史趋势分析与报警日志查询从而为后续的安全决策与事故调查提供依据。在实现过程中将面临若干关键技术问题。首先是如何在高并发条件下保持WebSocket连接的稳定性与低延迟需研究合适的消息队列与负载均衡策略其次是如何处理不同类型传感器温度、烟雾、光学等产生的数据格式差异需设计统一的数据接口与标准化协议再次是系统的安全性与隐私保护需要在数据传输与存储中引入加密与访问控制机制此外还需解决模拟模块与真实传感器数据的融合问题保证仿真结果的真实性与可验证性。通过对上述关键问题的系统研究本项目将为智慧消防领域提供一种技术可行、易于推广且具备高可靠性的实时报警解决方案。五、研究内容本研究围绕构建基于SpringBoot框架与WebSocket协议的实时火灾报警模拟系统展开系统整体设计遵循模块化、可扩展与高可靠性原则。首先在后端服务层面采用SpringBoot实现微服务架构利用其内置的WebFlux组件支持异步非阻塞请求从而满足高并发数据接入需求随后通过Spring Cloud配置中心统一管理服务配置并使用Eureka注册中心实现服务发现与负载均衡。其次系统采用WebSocket协议实现前后端双向实时通信利用STOMP协议在消息层面提供主题订阅与发布机制使客户端能够即时订阅特定传感器或报警主题实现毫秒级别的消息推送。第三在数据处理层面引入Redis缓存与Kafka消息队列先将传感器原始数据写入Kafka进行异步分发再通过Redis缓存实现热点数据的快速读取同时设计统一的数据模型将温度、烟雾浓度、光学火焰探测等多维度信息封装为JSON结构便于后续算法处理与前端展示。第四系统集成机器学习模块用于对历史报警数据进行特征提取与异常检测采用支持向量机与随机森林模型对温度与烟雾浓度序列进行分类从而实现对潜在火灾的早期预警。第五前端展示层使用Vue.js框架构建单页面应用利用ECharts绘制实时折线图、热力图与地图定位提供报警事件的可视化跟踪与历史回溯功能同时通过WebSocket订阅机制实现仪表盘的即时刷新。第六系统提供模拟模块可根据用户设定的火源位置、燃烧速率与环境参数生成温度梯度与烟雾扩散模型利用CFD仿真结果生成可视化数据供后端处理与前端展示。最后研究将通过构建实验平台对系统在不同并发量、网络延迟与传感器失效场景下的性能进行评估重点关注平均响应时间、消息丢包率与报警准确率等关键指标以验证系统设计的可行性与鲁棒性。六、需求分析用户需求方面系统的主要目标是为建筑管理者、消防部门与安全监管机构提供一种高效、可靠且易于操作的火灾监测与报警工具。用户期望能够在第一时间内获取各类传感器温度、烟雾、光学火焰探测等的实时数据并通过直观的可视化界面快速识别潜在风险点同时系统需支持多级报警等级划分允许用户根据不同场景自定义阈值与响应策略此外用户还需要对历史报警记录进行查询与统计分析以便进行事故原因调查、风险评估与预防措施制定在使用体验层面系统必须具备简洁的登录与权限管理功能支持多终端访问包括PC端桌面浏览器与移动设备应用最后用户对系统的稳定性与安全性要求极高期望系统能够在网络波动、设备失效或恶意攻击情况下保持持续运行并提供完整的日志审计与数据备份方案。功能需求方面系统整体架构需分为数据采集层、业务处理层、通信层与展示层四大模块。数据采集层通过RESTful接口或MQTT协议接收来自分布式传感器节点的原始测量值并将其写入Kafka消息队列以实现异步解耦业务处理层利用Spring Boot微服务对消息进行实时解析、异常检测与报警决策采用规则引擎与机器学习模型相结合的方式提高误报率与漏报率的平衡通信层基于WebSocket协议实现服务器与前端之间的双向实时推送支持主题订阅机制使得不同用户可根据角色订阅对应的报警通道展示层则通过Vue.js框架构建单页面应用利用ECharts绘制温度与烟雾浓度折线图、热力图与地图定位视图并提供报警历史查询、设备状态监控与系统健康指标等功能。除此之外系统还需集成模拟模块允许用户在虚拟环境中设置火源位置、燃烧速率与风向等参数生成CFD仿真结果并实时反馈给业务处理层以验证报警逻辑的准确性在安全与运维方面系统必须实现基于JWT的身份认证、HTTPS加密传输、日志审计与权限细粒度控制并通过Docker容器化部署实现快速扩容与灰度升级。七、可行性分析经济可行性方面系统的总体成本主要由硬件采购、软件开发与维护以及运营支出构成。硬件成本包括传感器节点、网关设备与服务器集群采用低功耗ZigBee或LoRa技术的传感器单价约为数百元配合云端服务器租赁费用每月数千元软件开发成本则集中在后端SpringBoot微服务、前端Vue.js界面以及模拟模块的实现预计初期投入约为人民币30万元至50万元主要由技术研发团队与外部咨询机构共同完成。运营支出涵盖系统监控、数据存储与备份、技术支持与升级按年估算可控制在10万元至15万元之间。相对而言系统所带来的收益体现在提升火灾预警效率、降低事故损失以及满足监管合规要求等方面。根据行业报告显示一起中型建筑火灾平均造成的直接经济损失可达数百万元若通过实时报警系统将响应时间缩短至数十秒可将损失率降低30%至50%以此计算系统在三年内即可实现成本回收并产生正现金流。此外随着智慧城市与工业互联网的快速发展相关政府补贴与行业基金可进一步降低项目初期投入为项目提供财政支持。综上所述从成本收益比、投资回报周期以及资金来源多元化角度来看该系统具备较高的经济可行性。社会可行性方面系统的实施将显著提升公共安全水平减少火灾事故造成的人员伤亡与财产损失。根据国家统计数据火灾事故每年导致数千人死亡、数十万人受伤且大部分事故发生在老旧小区与工业园区。通过实时监测与即时报警可实现从预警到处置的闭环管理缩短消防队伍的响应时间并提高救援效率从而降低社会成本。与此同时系统对用户的使用门槛较低采用WebSocket实时推送与可视化仪表盘管理人员可在任何终端快速获取信息对于技术人员而言基于SpringBoot与Docker容器化部署的架构降低了运维复杂度并提供了易于扩展的微服务模型。社会接受度方面随着人们对智能安全系统认知的提升以及对数据隐私保护法规的完善系统在隐私与安全方面可通过加密传输、访问控制与日志审计等措施满足监管要求从而获得用户信任。最后系统的推广将为相关行业提供标准化的数据接口与算法模型有助于形成行业共识与技术生态进一步推动智慧消防技术的普及。综上所述该系统在提升公共安全、降低社会成本以及获得用户认可等方面具备显著的社会可行性。技术可行性方面系统核心技术基于SpringBoot框架实现后端微服务利用WebFlux提供异步非阻塞请求处理能够满足高并发传感器数据接入需求WebSocket协议在Spring WebSocket模块中得到成熟支持可实现低延迟双向通信Kafka与Redis的组合则提供了可靠的消息中间件与高速缓存方案保证数据在高峰期的顺畅流转。模拟模块采用CFD仿真技术生成温度梯度与烟雾扩散模型并通过RESTful接口将结果推送至业务层已在实验室环境中验证其可行性。算法层面使用支持向量机与随机森林模型对温度与烟雾序列进行分类可在训练集上达到误报率低于5%的效果进一步引入深度学习模型如LSTM可进一步提升预测精度。安全技术方面系统通过JWT身份认证、HTTPS加密传输以及细粒度权限控制实现数据与接口的安全性Docker容器化部署与Kubernetes编排提供了弹性伸缩与高可用保障。技术风险主要集中在多源数据的标准化、实时通信的网络抖动以及模拟模型与真实环境的差异上针对这些风险系统设计了冗余节点、消息重试机制以及模型验证模块以确保系统在不同场景下保持稳定性。综上所述现有技术栈成熟且已在类似项目中得到验证系统的技术可行性强。八、功能分析系统功能模块可划分为七大核心组成部分分别为数据采集与预处理模块、消息传输与缓存模块、业务逻辑与报警决策模块、实时通信与推送模块、前端展示与交互模块、模拟仿真与模型训练模块以及用户管理与安全控制模块。每个模块在整体架构中承担特定职责并通过RESTful接口或WebSocket协议实现高效协作。数据采集与预处理模块负责接收来自分布式传感器节点的原始测量值支持温度、烟雾浓度、光学火焰探测等多种传感类型该模块采用异步非阻塞的HTTP或MQTT协议将采集到的数据封装为统一的JSON结构并进行初步校验与时间戳标注后推送至消息队列在此过程中模块还会对异常值进行滤波与缺失值填补以保证后续业务处理的准确性。消息传输与缓存模块以Kafka为核心消息中间件负责将预处理后的数据异步分发给业务逻辑层同时利用Redis缓存热点数据实现快速读取与高并发访问该模块还提供消息持久化与重试机制确保在网络波动或节点失效时不丢失关键报警信息通过主题订阅模式业务服务可根据需要选择性消费特定类型的传感数据。业务逻辑与报警决策模块是系统的核心它集成规则引擎与机器学习模型对传感器数据进行实时分析与异常检测规则引擎根据预设阈值如温度升高至一定摄氏度、烟雾浓度超过安全上限触发报警事件机器学习模型支持向量机、随机森林或LSTM网络则通过历史数据训练识别复杂的火焰与烟雾模式进一步降低误报率该模块在检测到异常后生成报警事件并将事件信息推送至实时通信模块同时记录日志供后期分析。实时通信与推送模块基于WebSocket协议实现服务器与前端的双向低延迟通信通过STOMP协议支持主题订阅前端可根据用户角色订阅不同报警通道该模块负责将业务层生成的报警事件、设备状态更新以及模拟数据实时推送给客户端并在网络异常时进行消息缓存与重发确保信息完整性。前端展示与交互模块采用Vue.js框架构建单页面应用利用ECharts绘制温度与烟雾浓度折线图、热力图以及地图定位视图用户可通过仪表盘查看实时数据、报警历史、设备健康状态并支持自定义阈值与报警策略此外模块还提供设备管理界面支持传感器的在线/离线状态监控与参数配置。模拟仿真与模型训练模块为系统提供虚拟实验环境通过CFD仿真技术生成火源位置、燃烧速率与风向等参数下的温度梯度与烟雾扩散模型并将结果以JSON形式推送至业务层该模块亦支持机器学习模型的训练与评估利用历史报警数据进行交叉验证以持续提升预测精度。用户管理与安全控制模块负责系统身份认证、权限分配与数据访问控制采用JWT进行无状态身份验证并通过HTTPS加密传输保护数据安全该模块还实现细粒度角色权限管理确保不同用户只能访问其授权的数据与功能同时提供日志审计功能记录用户操作与系统事件满足合规性要求。综上所述七大功能模块通过清晰的职责划分与标准化接口实现协同工作构成了一个完整、可扩展且高可靠性的实时火灾报警模拟系统。九、数据库设计字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 用户唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |username | 登录用户名 | 50 | VARCHAR(50) NOT NULL UNIQUE | |password_hash | 密码哈希值 | 255 | VARCHAR(255) NOT NULL | |email | 邮箱地址 | 100 | VARCHAR(100) UNIQUE | |phone | 联系电话 | 20 | VARCHAR(20) NULL | |status | 用户状态0禁用1启用 | 1 | TINYINT UNSIGNED DEFAULT 1 NOT NULL | |created_at | 创建时间 | 19 | DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL | |updated_at | 最后更新时间 | 19 | DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 角色唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |name | 角色名称如管理员 | 50 | VARCHAR(50) NOT NULL UNIQUE | |description | 描述信息 | 255 | VARCHAR(255) NULL | |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---user_id | 用户标识 | 20 | BIGINT UNSIGNED NOT NULL | 外键 → users.id, 主键组成复合主键 |role_id | 角色标识 | 20 | BIGINT UNSIGNED NOT NULL | 外键 → roles.id, 主键组成复合主键 |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 权限唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |name | 权限名称如view_alarm | 50 | VARCHAR(50) NOT NULL UNIQUE | |description | 描述信息 | 255 | VARCHAR(255) NULL |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---role_id | 角色标识 | 20 | BIGINT UNSIGNED NOT NULL | 外键 → roles.id, 主键组成复合主键 |permission_id | 权限标识 | 20 | BIGINT UNSIGNED NOT NULL | 外键 → permissions.id, 主键组成复合主键 |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 传感器唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |sensor_type | 传感器类型temperature、smoke、flame | 20 | VARCHAR(20) NOT NULL |location | 安装位置描述 | 100 | VARCHAR(100) NULL |status | 状态0离线1在线 | 1 | TINYINT UNSIGNED DEFAULT 1 NOT NULL |last_seen_at | 最后一次通信时间 | 19 | DATETIME NULL |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 原始数据唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |sensor_id | 传感器标识 | 20 | BIGINT UNSIGNED NOT NULL |timestamp | 数据采集时间戳 | 19 | DATETIME NOT NULL |temperature | 温度值℃ | 5,2 | DECIMAL(5,2) NULL |smoke_concentration | 烟雾浓度% | 5,2 | DECIMAL(5,2) NULL |flame_detected | 火焰检测结果0否1是 | 1 | TINYINT UNSIGNED DEFAULT 0 NOT NULL |created_at | 记录创建时间 | 19 | DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL |FOREIGN KEY (sensor_id) REFERENCES sensors(id)字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 处理后数据唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |sensor_id | 传感器标识 | 20 | BIGINT UNSIGNED NOT NULL |timestamp | 数据时间戳 | 19 | DATETIME NOT NULL |avg_temperature | 平均温度℃ | 5,2 | DECIMAL(5,2) NULL |avg_smoke_concentration | 平均烟雾浓度% | 5,2 | DECIMAL(5,2) NULL |anomaly_flag | 是否异常标记0否1是 | 1 | TINYINT UNSIGNED DEFAULT 0 NOT NULL |FOREIGN KEY (sensor_id) REFERENCES sensors(id)字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 报警唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |sensor_id | 触发传感器标识 | 20 | BIGINT UNSIGNED NOT NULL |alarm_type | 报警类型temperature、smoke、flame | 20 | VARCHAR(20) NOT NULL |level | 报警等级1低2中3高 | 1 | TINYINT UNSIGNED NOT NULL |message | 报警信息文本 | 255 | VARCHAR(255) NOT NULL |triggered_at | 报警触发时间 | 19 | DATETIME NOT NULL |resolved_at | 报警解除时间可空 | 19 | DATETIME NULL |status | 状态0未处理1已处理 | 1 | TINYINT UNSIGNED DEFAULT 0 NOT NULL |FOREIGN KEY (sensor_id) REFERENCES sensors(id)字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 模拟参数唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |name | 参数集名称如“实验场景A” | 50 | VARCHAR(50) NOT NULL UNIQUE |description | 描述信息 | 255 | VARCHAR(255) NULL |created_at | 创建时间 | 19 | DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL |字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 模拟运行唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |parameter_id | 参数集标识 | 20 | BIGINT UNSIGNED NOT NULL |start_time | 开始时间 | 19 | DATETIME NOT NULL |end_time | 结束时间可空 | 19 | DATETIME NULL |status | 状态0未开始1运行中2已完成3失败 | 1 | TINYINT UNSIGNED DEFAULT 0 NOT NULL |FOREIGN KEY (parameter_id) REFERENCES simulation_parameters(id)字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 模拟结果唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |run_id | 运行标识 | 20 | BIGINT UNSIGNED NOT NULL |sensor_id | 传感器标识模拟对应传感器 | 20 | BIGINT UNSIGNED NOT NULL |timestamp | 数据时间戳 | 19 | DATETIME NOT NULL |temperature | 模拟温度℃ | 5,2 | DECIMAL(5,2) NULL |smoke_concentration | 模拟烟雾浓度% | 5,2 | DECIMAL(5,2) NULL |FOREIGN KEY (run_id) REFERENCES simulation_runs(id)FOREIGN KEY (sensor_id) REFERENCES sensors(id)字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 设备信息唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |sensor_id | 传感器标识外键 | 20 | BIGINT UNSIGNED NOT NULL |firmware_version | 固件版本号 | 20 | VARCHAR(20) NULL |battery_level | 电池电量百分比0-100 | 3,0 | DECIMAL(3,0) NULL |last_maintenance_at | 上次维护时间 | 19 | DATETIME NULL |FOREIGN KEY (sensor_id) REFERENCES sensors(id)字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注---|---|---|---|---|---id | 日志唯一标识 | 20 | BIGINT UNSIGNED AUTO_INCREMENT | 主键 |user_id | 用户标识可空 | 20 | BIGINT UNSIGNED NULL |action_type | 操作类型如login、update_alarm | 50 | VARCHAR(50) NOT NULL |description | 操作描述文本 | 255 | VARCHAR(255) NULL |created_at | 日志时间戳 | 19 | DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL |以上表结构遵循第一范式至第三范式避免冗余主外键约束确保数据完整性。十、建表语句CREATE TABLE IF NOT EXISTS users (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,password_hash VARCHAR(255) NOT NULL,email VARCHAR(100) UNIQUE,phone VARCHAR(20),status TINYINT UNSIGNED DEFAULT 1 NOT NULL,created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS roles (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL UNIQUE,description VARCHAR(255)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS permissions (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL UNIQUE,description VARCHAR(255)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS user_roles (user_id BIGINT UNSIGNED NOT NULL,role_id BIGINT UNSIGNED NOT NULL,PRIMARY KEY (user_id, role_id),INDEX idx_user_roles_user_id (user_id),INDEX idx_user_roles_role_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 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS role_permissions (role_id BIGINT UNSIGNED NOT NULL,permission_id BIGINT UNSIGNED NOT NULL,PRIMARY KEY (role_id, permission_id),INDEX idx_role_permissions_role_id (role_id),INDEX idx_role_permissions_permission_id (permission_id),CONSTRAINT fk_role_permissions_role FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_role_permissions_permission FOREIGN KEY (permission_id) REFERENCES permissions(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS sensors (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,sensor_type VARCHAR(20) NOT NULL,location VARCHAR(100),status TINYINT UNSIGNED DEFAULT 1 NOT NULL,last_seen_at DATETIME) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS sensor_data_raw (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,sensor_id BIGINT UNSIGNED NOT NULL,timestamp DATETIME NOT NULL,temperature DECIMAL(5,2),smoke_concentration DECIMAL(5,2),flame_detected TINYINT UNSIGNED DEFAULT 0 NOT NULL,created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,INDEX idx_sensor_data_raw_sensor_id (sensor_id),CONSTRAINT fk_sensor_data_raw_sensor FOREIGN KEY (sensor_id) REFERENCES sensors(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS sensor_data_processed (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,sensor_id BIGINT UNSIGNED NOT NULL,timestamp DATETIME NOT NULL,avg_temperature DECIMAL(5,2),avg_smoke_concentration DECIMAL(5,2),anomaly_flag TINYINT UNSIGNED DEFAULT 0 NOT NULL,INDEX idx_sensor_data_processed_sensor_id (sensor_id),CONSTRAINT fk_sensor_data_processed_sensor FOREIGN KEY (sensor_id) REFERENCES sensors(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS alarms (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,sensor_id BIGINT UNSIGNED NOT NULL,alarm_type VARCHAR(20) NOT NULL,level TINYINT UNSIGNED NOT NULL,message VARCHAR(255) NOT NULL,triggered_at DATETIME NOT NULL,resolved_at DATETIME,status TINYINT UNSIGNED DEFAULT 0 NOT NULL,INDEX idx_alarms_sensor_id (sensor_id),CONSTRAINT fk_alarms_sensor FOREIGN KEY (sensor_id) REFERENCES sensors(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS simulation_parameters (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL UNIQUE,description VARCHAR(255),created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS simulation_runs (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,parameter_id BIGINT UNSIGNED NOT NULL,start_time DATETIME NOT NULL,end_time DATETIME,status TINYINT UNSIGNED DEFAULT 0 NOT NULL,INDEX idx_simulation_runs_parameter_id (parameter_id),CONSTRAINT fk_simulation_runs_parameter FOREIGN KEY (parameter_id) REFERENCES simulation_parameters(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS simulation_results (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,run_id BIGINT UNSIGNED NOT NULL,sensor_id BIGINT UNSIGNED NOT NULL,timestamp DATETIME NOT NULL,temperature DECIMAL(5,2),smoke_concentration DECIMAL(5,2),INDEX idx_simulation_results_run_id (run_id),INDEX idx_simulation_results_sensor_id (sensor_id),CONSTRAINT fk_simulation_results_run FOREIGN KEY (run_id) REFERENCES simulation_runs(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_simulation_results_sensor FOREIGN KEY (sensor_id) REFERENCES sensors(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS sensor_info (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,sensor_id BIGINT UNSIGNED NOT NULL,firmware_version VARCHAR(20),battery_level DECIMAL(3,0),last_maintenance_at DATETIME,INDEX idx_sensor_info_sensor_id (sensor_id),CONSTRAINT fk_sensor_info_sensor FOREIGN KEY (sensor_id) REFERENCES sensors(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;CREATE TABLE IF NOT EXISTS logs (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,user_id BIGINT UNSIGNED,action_type VARCHAR(50) NOT NULL,description VARCHAR(255),created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,INDEX idx_logs_user_id (user_id),CONSTRAINT fk_logs_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方获取联系方式