博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业, 从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。
一、研究目的
研究的核心目标在于构建一种高效、实时且鲁棒的安全帽佩戴检测系统,以满足现代工业生产现场对人员安全管理的严格要求。该系统基于YOLO系列目标检测算法,通过改进网络结构与损失函数,提升对不同光照、遮挡及多样化头盔颜色和形状的识别精度,从而实现对工人佩戴状态的即时判断与报警。进一步地,本研究旨在将检测结果与工业现场的监控平台无缝集成,实现数据可视化、历史轨迹分析以及异常事件的自动报告,进而为安全管理决策提供可靠的数据支持。与此同时,考虑到实际部署环境中计算资源受限的情况,本工作还将探索模型压缩与加速技术,以保证在嵌入式设备上实现毫秒级响应时间。综上所述,本研究不仅追求技术上的创新与性能突破,更关注系统的可落地性与可维护性,为构建智慧工厂安全生态提供有力支撑。为实现上述目标,研究首先将对现有YOLO模型进行细粒度的结构优化,包括引入轻量化卷积单元、采用多尺度特征融合策略以及自适应阈值机制,以在保持检测精度的同时显著降低计算量。随后,将收集并标注来自不同工厂现场的多源视频数据,构建包含安全帽佩戴与未佩戴两类样本的大规模训练集,以提升模型对真实场景的泛化能力。实验阶段将通过交叉验证与在线推理测试,对比传统YOLOv5、YOLOv7及改进模型在准确率、召回率、平均精度均值(mAP)和帧率等指标上的表现,验证所提方法的有效性。与此同时,为满足工业现场对实时性的严格要求,本研究将结合TensorRT与OpenVINO等推理框架,对模型进行量化与层级剪枝,以实现低功耗设备上的高效部署。最终,系统将通过RESTful API向工厂管理系统提供实时报警信息,并支持多维度报表生成,为安全监管人员提供直观、可操作的决策依据。在此基础上,本研究还将探讨多摄像头协同与边缘计算的融合方案,以进一步提升大规模工地场景下的检测覆盖率和鲁棒性,并为后续研究提供可复制、可扩展的技术框架。
二、研究意义
在现代工业生产中,安全帽佩戴是防止头部受伤的最基本且最有效的措施之一,然而传统的人工巡检方式存在主观性强、效率低下、覆盖盲区多等缺陷。随着工业互联网与智能制造的快速发展,利用计算机视觉技术实现对工人安全帽佩戴状态的实时监测已成为提升现场安全管理水平的重要手段。基于YOLO目标检测算法的安全帽佩戴检测系统能够在复杂光照、遮挡以及多样化头盔颜色和形状的情况下保持高精度识别,从而显著降低因工人未佩戴安全帽导致的事故风险,为企业提供可靠的数据支持,帮助管理层及时发现和纠正安全隐患。
本研究所提出的系统具有重要的社会意义。首先,它能够有效减少工业生产现场因头部受伤造成的人身伤害和医疗费用,提升工人生命安全保障水平。其次,系统实现了对安全帽佩戴状态的实时监测与自动报警,可在事故发生前及时发出警示,从而降低因延误导致的损失。再者,该技术能够为监管部门提供客观、可量化的安全管理数据,推动行业标准化和规范化进程,促进安全生产责任制的落实。
从经济角度看,安全帽佩戴检测系统能够降低工伤事故率,减少因停工、赔偿及保险费用产生的经济损失。通过提升现场安全管理效率,企业可将人力资源从繁琐的巡检工作中解放出来,投入到更高价值的生产与创新活动中,从而提升整体运营效益。与此同时,该系统的技术成熟度和可扩展性为其他工业安全监测场景提供了可复制、可推广的技术范式,为智能制造生态系统的发展注入新的活力。
在技术层面,本研究通过对YOLO算法的结构优化与损失函数改进,推动了目标检测模型在边缘设备上的高效部署,具有重要的学术价值。通过构建多源视频数据集并进行大规模标注,为后续安全监测领域的数据驱动研究提供了宝贵资源。系统所实现的实时推理与多摄像头协同技术,为工业现场复杂环境下的目标检测研究提供了新的思路和方法,对计算机视觉在工业安全领域的应用具有广泛的推广意义。
三、国内外研究现状
近年来,随着工业互联网与智能制造的快速发展,基于计算机视觉的安全帽佩戴检测已成为工地安全管理的重要研究方向。国内外学术界普遍采用目标检测算法实现对工人头部佩戴状态的实时识别,其中YOLO系列模型因其高效、轻量化的特性而被广泛关注。国内高校与科研机构在此领域开展了多项工作,主要集中在数据集构建、模型改进与边缘部署三大方向。首先,针对工地现场光照变化大、遮挡严重等特点,研究人员通过采集多源视频并进行人工标注,构建了包含安全帽佩戴与未佩戴两类样本的专用数据集,为后续模型训练提供了可靠基础。其次,在模型层面,国内团队对YOLOv5、YOLOv7等版本进行结构优化,引入轻量化卷积单元、特征金字塔融合以及自适应阈值机制,显著提升了在低算力设备上的检测精度与速度。再次,为实现工业现场的实时监控,研究者将改进模型部署到嵌入式平台,并结合TensorRT、OpenVINO等推理框架进行量化与剪枝,以满足毫秒级响应需求。
在国际研究中,学术界同样聚焦于安全帽及个人防护装备(PPE)的检测与监测。欧美高校与研究机构通过收集公开数据集如PPE-Detection、COCO-PPE等,开展基于YOLO、SSD以及Transformer等模型的实验。研究成果表明,YOLOv5在工地视频中的平均精度均值(mAP)可达到80%以上,且推理速度可达30FPS以上。与此同时,为提高模型在不同工地环境下的泛化能力,研究人员引入域自适应技术、伪标签学习以及多任务学习框架,使得模型在跨场景迁移时误差显著降低。边缘部署方面,国外团队利用FPGA与GPU加速器实现了低功耗、高吞吐量的检测系统,并通过多摄像头协同与时间同步技术提升了全景覆盖率。
总体来看,国内外研究均已取得显著进展,但仍存在若干挑战。首先,现有数据集在样本多样性、标注质量以及场景覆盖度方面尚不完善,导致模型在真实工地中的鲁棒性不足。其次,尽管YOLO系列模型已实现轻量化,但在极端光照、遮挡以及动态背景下的误检率仍高于预期。再次,边缘设备的算力与能耗限制使得高精度模型难以在工地现场长时间稳定运行。未来研究可从数据增强、跨域迁移学习、模型压缩与自适应推理等方向进一步突破,以实现真正意义上的工业安全帽佩戴检测系统。
四、预期达到目标及解决的关键问题
预期目标在于构建一套能够在工业现场实时、准确识别工人是否佩戴安全帽的智能检测系统,并实现与现场监控平台的无缝对接。系统需满足以下性能指标:检测精度(平均精度均值)不低于0.85,误检率低于5%,帧率不低于30FPS,并在嵌入式设备上实现功耗控制在10瓦以内。除此之外,系统还应支持多摄像头协同覆盖大面积工地区域,并能够将检测结果以可视化报表形式提供给安全管理人员,以便快速定位安全隐患并进行追踪分析。
关键问题主要集中在四个方面。首先是数据集构建与标注质量。现有公开数据集多为实验室环境或少量现场样本,缺乏足够的光照、遮挡以及多样化头盔颜色和形状等变异因素,导致模型在真实工地中的泛化性能不足。其次是模型鲁棒性与精度提升。在强光、逆光、阴影以及部分遮挡等复杂场景下,目标检测算法往往出现漏检或误检,需要通过网络结构改进、特征金字塔融合以及自适应阈值机制等手段提升鲁棒性。再次是实时推理与边缘部署。工业现场对延迟的容忍度极低,传统YOLO模型在CPU或低端GPU上推理速度不足,且模型体积过大导致存储与能耗瓶颈。最后是系统集成与可维护性。将检测模块嵌入现有监控系统需要考虑接口兼容、数据流同步以及后期升级的可行性。
为解决上述问题,本研究计划从数据层面构建多源、多场景的工地视频数据集,并采用半自动标注工具与人工复核相结合的方式提升标注效率与准确性。模型层面将基于YOLOv7进行轻量化改造,引入深度可分离卷积、注意力机制以及多尺度特征融合,以兼顾精度与速度。针对边缘部署,将对模型进行混合精度量化、剪枝以及知识蒸馏,并在FPGA或低功耗GPU上进行硬件加速,实现毫秒级响应。系统集成方面,将采用RESTful API与WebSocket双向通信协议,保证检测结果能够实时推送至监控平台,并通过可视化仪表盘展示历史轨迹与报警日志,以满足安全管理的业务需求。
综上所述,本研究的预期目标是实现一套高精度、低延迟、低功耗且易于集成的安全帽佩戴检测系统;关键问题则聚焦于数据多样性、模型鲁棒性、边缘推理以及系统可维护性。通过在上述方面开展系统性的技术攻关,期望能够为工业现场安全管理提供可靠的技术支撑,并推动计算机视觉在工业安全领域的应用落地。
五、研究内容
本研究围绕安全帽佩戴检测系统的需求展开,首先从数据层面入手,采集多种工地现场视频素材,包括不同光照、遮挡程度以及多样化头盔颜色和形状的场景,并采用半自动标注工具结合人工复核方式构建高质量标注数据集。随后,在模型设计层面,基于YOLOv7架构进行轻量化改造,引入深度可分离卷积、注意力机制以及多尺度特征融合模块,以提升在低算力设备上的检测精度与速度;同时针对工地场景的特殊性,改进损失函数,加入遮挡惩罚项和安全帽类别平衡权重,以降低漏检率。训练阶段采用混合数据增强策略,包括随机裁剪、颜色抖动、光照变换以及遮挡模拟等手段,增强模型对光照变化与遮挡的鲁棒性;同时引入迁移学习与知识蒸馏技术,将预训练模型的特征迁移至工地数据集,并通过教师-学生框架实现模型压缩。推理优化方面,针对嵌入式平台进行混合精度量化、结构剪枝以及张量RT加速,确保在CPU或低端GPU上实现30FPS以上的实时推理,并将功耗控制在10瓦以内。系统集成层面,设计RESTful API与WebSocket双向通信协议,将检测结果实时推送至监控平台,并通过可视化仪表盘展示安全帽佩戴状态、异常报警与历史轨迹,以满足安全管理人员的业务需求。最后,在实验验证阶段,构建多摄像头协同测试环境,评估系统在大面积工地覆盖下的鲁棒性与误检率,并与现有工业安全检测方案进行对比,验证所提方法在精度、速度与能耗方面的优势。
六、需求分析
用户需求侧重于系统能够满足工业现场安全管理人员对实时性、准确性与可操作性的综合要求。首先,安全管理者需要在工地现场获得即时的安全帽佩戴状态信息,以便在发现未佩戴或误佩戴情况时能够迅速采取纠正措施;其次,系统应兼容现有的监控摄像头网络,支持多摄像头协同覆盖大面积作业区,从而实现全景式安全监测;再次,管理人员期望通过可视化报表获取历史佩戴率、异常事件分布以及趋势分析,以便进行安全风险评估与决策制定;再者,系统需具备低误报率与高召回率的检测性能,避免因误警导致的资源浪费或对工人工作节奏的干扰;最后,用户还要求系统能够在功耗受限的边缘设备上稳定运行,并提供简洁易用的操作界面,以降低维护成本与培训投入。
功能需求方面,系统必须实现多模态视频采集与预处理模块,支持不同分辨率与帧率摄像头的接入,并对输入流进行去噪、光照均衡及尺度归一化处理;随后,核心检测模块基于改进的YOLO网络,对每帧图像进行目标检测与分类,输出安全帽佩戴与未佩戴的二分类结果以及对应置信度;紧接着,边缘推理加速层需将模型部署至低功耗硬件平台,并通过量化、剪枝与张量RT加速实现毫秒级响应;随后,异常检测与报警模块根据检测结果生成实时告警,并通过多通道(短信、语音、系统通知)推送给现场安全负责人;此外,数据管理层负责将检测日志与视频片段存储至本地或云端数据库,并提供查询接口,以支持后期审计与分析;最后,可视化与交互层需提供基于Web或移动端的仪表盘,展示实时佩戴率、异常分布热力图、历史趋势曲线以及报警记录,并支持自定义报表导出与API对接,以满足企业内部安全管理系统的集成需求。
七、可行性分析
经济可行性方面,系统的研发与部署成本主要集中在数据采集与标注、模型训练与优化以及硬件采购与维护。相较于传统人工巡检方式,虽然初期需要投入专业摄像头、边缘计算设备以及软件开发费用,但从长期运营角度来看,系统能够显著降低工伤事故率,减少因停工、医疗及赔偿产生的直接经济损失,并提升企业的安全合规水平。通过对比分析可知,在中大型工业园区内部署该系统后,预计在三年内实现投资回收,并在随后的运营期内持续为企业创造净收益。社会可行性方面,安全帽佩戴检测系统直接服务于工人生命安全,能够有效预防头部受伤事故的发生,从而提升工地整体安全文化与工作环境。其实施符合国家关于职业健康与安全的相关法规与标准,能够帮助企业满足监管部门对安全管理的合规要求,并在行业内树立技术领先形象。社会效益还体现在通过数据可视化与历史分析功能,为政府及行业协会提供客观、可量化的安全管理指标,支持公共安全治理与风险评估。技术可行性方面,当前深度学习框架与边缘推理平台已成熟,能够支持YOLO系列模型在CPU或低功耗GPU上的高效部署。数据层面,通过工地现场视频采集与半自动标注工具,可构建多样化且规模足够的训练集,满足模型泛化需求。算法层面,针对工地光照变化、遮挡以及多样化头盔形态的挑战,可通过网络结构改进、特征金字塔融合以及自适应阈值机制提升检测精度与鲁棒性。硬件层面,现有的工业级摄像头与边缘计算设备已具备足够的采集与推理能力,且可通过混合精度量化与剪枝技术进一步降低功耗与延迟。综合上述因素,系统在经济、社会及技术三方面均具备可行性,为在工业现场实现安全帽佩戴检测提供了充分的支持。
八、功能分析
系统功能模块设计遵循从数据采集到业务决策的完整闭环,具体可划分为七大核心模块。首先,视频采集与预处理模块负责接入工地现场的多路摄像头流,并对原始图像进行去噪、光照均衡与尺度归一化处理,以消除环境变化对后续检测的干扰;该模块还实现帧率控制与时间戳同步,为后续多摄像头协同提供基础。其次,目标检测引擎模块基于改进的YOLOv7网络,对预处理后的每帧图像执行安全帽佩戴与未佩戴两类目标的定位与分类,输出边界框坐标、类别标签及置信度;该引擎通过多尺度特征融合与注意力机制提升在遮挡和光照变化下的鲁棒性。第三,边缘推理优化模块将检测模型部署至低功耗计算设备,并采用混合精度量化、结构剪枝与张量RT加速技术,实现毫秒级响应并控制功耗在10瓦以内;同时,该模块支持模型热更新与版本管理,保证系统长期稳定运行。第四,异常检测与报警模块根据检测结果实时评估安全帽佩戴状态,并在发现未佩戴或误佩戴时触发多通道告警(短信、语音、系统通知),同时记录事件时间与摄像头位置,为现场安全负责人提供即时干预依据。第五,数据管理与存储模块负责将检测日志、视频片段及报警记录持久化到本地或云端数据库,并提供索引查询接口,以支持后期审计与统计分析。第六,可视化与交互模块通过Web或移动端仪表盘展示实时佩戴率、异常分布热力图、历史趋势曲线以及报警记录,并支持自定义报表导出与权限管理,满足不同角色的业务需求。最后,系统集成与接口模块提供RESTful API与WebSocket双向通信协议,使检测结果能够无缝对接企业内部安全管理系统或第三方平台,实现业务流程的自动化和协同。通过上述七大功能模块的协同工作,系统能够实现从现场数据采集到安全决策支持的完整闭环,为工业现场安全管理提供可靠、实时且可扩展的技术方案。
九、数据库设计
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
camera_id | 摄像头编号。 | 36 | CHAR(36) | 主键,唯一标识摄像头。 |
camera_name | 摄像头名称。 | 255 | VARCHAR(255) | |
location | 摄像头所在位置。 | 255 | VARCHAR(255) | |
ip_address | 摄像头IP地址。 | 45 | VARCHAR(45) | |
stream_port | 视频流端口号。 | 5 | INT UNSIGNED | |
status | 摄像头状态(在线/离线)。 | 1 | CHAR(1) | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
stream_id | 视频流编号。 | 36 | CHAR(36) | 主键,唯一标识视频流。 |
camera_id | 所属摄像头编号。 | 36 | CHAR(36) | 外键,关联 Cameras 表。 |
start_time | 视频流开始时间。 | 19 | DATETIME | |
end_time | 视频流结束时间。 | 19 | DATETIME | 可为空,表示持续中。 |
resolution | 视频分辨率(宽x高)。 | 10 | VARCHAR(10) | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
result_id | 检测结果编号。 | 36 | CHAR(36) | 主键,唯一标识一次检测。 |
stream_id | 视频流编号。 | 36 | CHAR(36) | 外键,关联 VideoStreams 表。 |
frame_number | 帧号。 | 10 | INT UNSIGNED | |
bbox_x1, bbox_y1, bbox_x2, bbox_y2 | 检测框左上角和右下角坐标。 | 10 | INT UNSIGNED | |
label | 检测标签(佩戴/未佩戴)。 | 10 | VARCHAR(10) | |
confidence | 置信度。 | 5 | DECIMAL(5,2) | 小数点后两位。 |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
alert_id | 告警编号。 | 36 | CHAR(36) | 主键,唯一标识一次告警。 |
result_id | 检测结果编号。 | 36 | CHAR(36) | 外键,关联 DetectionResults 表。 |
alert_type | 告警类型(未佩戴/误佩戴)。 | 20 | VARCHAR(20) | |
alert_time | 告警时间。 | 19 | DATETIME | |
status | 告警状态(已处理/未处理)。 | 1 | CHAR(1) | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
user_id | 用户编号。 | 36 | CHAR(36) | 主键,唯一标识用户。 |
username | 用户名。 | 255 | VARCHAR(255) | |
password_hash | 密码哈希值。 | 255 | VARCHAR(255) | |
role_id | 所属角色编号。 | 36 | CHAR(36) | 外键,关联 Roles 表。 |
created_at, updated_at | 创建/更新时间。 | 19,19 | DATETIME | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
role_id | 角色编号。 | 36 | CHAR(36) | 主键,唯一标识角色。 |
role_name | 角色名称。 | 100 | VARCHAR(100) | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
permission_id | 权限编号。 | 36 | CHAR(36) | 主键,唯一标识权限。 |
permission_name | 权限名称。 | 100 | VARCHAR(100) | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
role_permission_id | 角色权限编号。 | 36 | CHAR(36) | 主键,唯一标识一条角色-权限关系。 |
role_id | 角色编号。 | 36 | CHAR(36) | 外键,关联 Roles 表。 |
permission_id | 权限编号。 | 36 | CHAR(36) | 外键,关联 Permissions 表。 |
上述表结构遵循第一范式与第二范式,所有非主键字段均完全函数依赖于主键;通过外键约束保证数据完整性,满足第三范式要求。
十、建表语句
CREATE DATABASE IF NOT EXISTS helmet_detection CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE helmet_detection;
-- 摄像头信息表
CREATE TABLE IF NOT EXISTS Cameras (
camera_id CHAR(36) NOT NULL,
camera_name VARCHAR(255) NOT NULL,
location VARCHAR(255) NULL,
ip_address VARCHAR(45) NOT NULL,
stream_port INT UNSIGNED NOT NULL,
status CHAR(1) NOT NULL DEFAULT '1',
PRIMARY KEY (camera_id),
UNIQUE KEY uq_cameras_ip_port (ip_address, stream_port)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 视频流信息表
CREATE TABLE IF NOT EXISTS VideoStreams (
stream_id CHAR(36) NOT NULL,
camera_id CHAR(36) NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME NULL,
resolution VARCHAR(10) NOT NULL,
PRIMARY KEY (stream_id),
INDEX idx_video_streams_camera_id (camera_id),
CONSTRAINT fk_video_streams_camera
FOREIGN KEY (camera_id) REFERENCES Cameras(camera_id)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 检测结果表
CREATE TABLE IF NOT EXISTS DetectionResults (
result_id CHAR(36) NOT NULL,
stream_id CHAR(36) NOT NULL,
frame_number INT UNSIGNED NOT NULL,
bbox_x1 INT UNSIGNED NOT NULL,
bbox_y1 INT UNSIGNED NOT NULL,
bbox_x2 INT UNSIGNED NOT NULL,
bbox_y2 INT UNSIGNED NOT NULL,
label VARCHAR(10) NOT NULL,
confidence DECIMAL(5,2) NOT NULL,
PRIMARY KEY (result_id),
INDEX idx_detection_results_stream_id (stream_id),
CONSTRAINT fk_detection_results_stream
FOREIGN KEY (stream_id) REFERENCES VideoStreams(stream_id)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 告警表
CREATE TABLE IF NOT EXISTS Alerts (
alert_id CHAR(36) NOT NULL,
result_id CHAR(36) NOT NULL,
alert_type VARCHAR(20) NOT NULL,
alert_time DATETIME NOT NULL,
status CHAR(1) NOT NULL DEFAULT '0',
PRIMARY KEY (alert_id),
INDEX idx_alerts_result_id (result_id),
CONSTRAINT fk_alerts_result
FOREIGN KEY (result_id) REFERENCES DetectionResults(result_id)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 用户表
CREATE TABLE IF NOT EXISTS Users (
user_id CHAR(36) NOT NULL,
username VARCHAR(255) NOT NULL,
password_hash VARCHAR(255) NOT NULL,
role_id CHAR(36) NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (user_id),
UNIQUE KEY uq_users_username (username),
INDEX idx_users_role_id (role_id),
CONSTRAINT fk_users_role
FOREIGN KEY (role_id) REFERENCES Roles(role_id)
ON UPDATE CASCADE ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 角色表
CREATE TABLE IF NOT EXISTS Roles (
role_id CHAR(36) NOT NULL,
role_name VARCHAR(100) NOT NULL,
PRIMARY KEY (role_id),
UNIQUE KEY uq_roles_name (role_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 权限表
CREATE TABLE IF NOT EXISTS Permissions (
permission_id CHAR(36) NOT NULL,
permission_name VARCHAR(100) NOT NULL,
PRIMARY KEY (permission_id),
UNIQUE KEY uq_permissions_name (permission_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 角色权限关联表
CREATE TABLE IF NOT EXISTS RolePermissions (
role_permission_id CHAR(36) NOT NULL,
role_id CHAR(36) NOT NULL,
permission_id CHAR(36) NOT NULL,
PRIMARY KEY (role_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(role_id)
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT fk_role_permissions_permission
FOREIGN KEY (permission_id) REFERENCES Permissions(permission_id)
ON UPDATE CASCADE ON DELETE CASCADE,
UNIQUE KEY uq_role_permission (role_id, permission_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻