☰
基于SpringBoot与Vue的企业招聘与简历筛选系统的设计与实现计算机毕业设计(源码+lw+部署文档+讲解等)
2026/10/7 2:50:56 网站建设 项目流程

博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业, 从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。

一、研究目的

研究的主要目的在于构建一套基于SpringBoot与Vue技术栈的企业招聘与简历筛选系统,以满足现代企业在人才引进过程中的高效、精准、可持续需求。首先,通过对现有招聘平台功能与性能的系统评估,识别出传统系统在数据处理速度、用户体验以及智能匹配算法方面的不足,从而为本研究提供改进方向。其次,利用SpringBoot框架的模块化设计理念与Vue前端技术的响应式特性,构建一个可扩展、易维护且具备高并发处理能力的后端服务与前端交互界面。再次,在系统核心功能层面引入基于自然语言处理与机器学习的简历自动化筛选模块,使得招聘方能够在海量简历中快速识别出符合岗位要求的候选人,显著降低人工筛选成本。除此之外,系统将支持多维度数据分析与可视化展示,为人力资源管理者提供决策支持工具,从而提升招聘决策的科学性与透明度。为确保系统安全与合规,本研究还将实现基于OAuth2.0的身份认证机制、细粒度权限控制以及对个人敏感信息的加密存储,满足GDPR等国际数据保护法规的要求。与此同时,系统设计将采用微服务架构与容器化部署方式,利用Docker与Kubernetes实现弹性伸缩,以适应企业招聘高峰期的访问压力。最后,本研究旨在通过实验验证与用户调研,评估系统在实际运营中的性能表现、可用性以及用户满意度,为后续大规模推广提供可靠依据。

二、研究意义

本研究的理论意义在于填补企业招聘系统与前后端技术融合方面的学术空白,系统性阐释SpringBoot与Vue框架协同工作机制,并通过对比实验验证其在大规模数据处理与交互响应中的性能优势,从而为信息系统设计提供可量化的经验模型。研究进一步扩展了自然语言处理与机器学习在简历筛选中的应用边界,提出基于多维特征提取的候选人匹配算法,并通过案例分析证明其在提升招聘精准度方面的有效性,为人才信息检索与推荐系统的理论研究贡献新视角。

从实践层面看,该系统能够显著降低企业招聘周期与人力成本,自动化筛选模块可在短时间内处理数千份简历,减少人工筛选所需的时间与主观偏差,从而提升招聘决策质量。系统的响应式前端设计为招聘方提供直观友好的操作界面,增强用户体验;后端微服务架构则实现了高可用与弹性伸缩,满足企业在招聘高峰期的访问压力。通过对比传统单体应用,本研究展示了分布式部署与容器化技术在实际业务中的可行性,为企业信息化升级提供可复制的技术路径。

技术创新方面,本研究首次将OAuth2.0身份认证、细粒度权限控制与加密存储相结合,构建了兼顾安全性与易用性的访问管理体系;同时引入Docker与Kubernetes实现持续交付与自动扩容,形成了端到端的DevOps闭环。AI驱动的简历筛选模块利用深度学习模型对文本进行语义理解,支持多语言简历处理,为跨国企业招聘提供技术支撑。上述技术组合在保证系统性能的同时,也为后续功能扩展奠定了坚实基础。

社会意义方面,本研究通过提供高效、透明的招聘平台,促进了人才资源的公平配置与优化配置,降低了中小企业进入市场的门槛;系统对个人敏感信息采用端到端加密与访问日志审计,严格遵守GDPR等国际数据保护法规,为企业合规运营提供技术保障。通过推广此类系统,可推动行业整体招聘流程的数字化转型,提升社会就业匹配效率,进而促进经济结构优化与可持续发展。

三、国内外研究现状

在全球范围内,企业招聘与简历筛选系统的研究已从早期的基于规则的匹配方法逐步转向利用机器学习与深度学习技术实现自动化筛选。国外学术界首先关注文本特征提取与词向量模型的应用,随后引入卷积神经网络与循环神经网络对简历内容进行语义理解,并通过多任务学习提升职位匹配准确率。与此同时,研究者将知识图谱与实体链接技术引入人才信息管理,实现候选人与岗位之间的多维度关联分析,从而在大规模数据环境下保持高效检索与推荐能力。近年,国外高校与研究机构更关注系统的可解释性与公平性,通过对模型决策过程进行可视化和因果推断,降低算法偏见对招聘结果的影响。

国内研究起步较晚,但发展迅速。中国高校与科研院所首先在传统信息检索框架下开展简历检索实验,随后结合自然语言处理技术实现关键词抽取与句子级别的匹配。近年来,随着大数据与云计算技术的成熟,国内学者将分布式计算平台与微服务架构引入招聘系统,实现高并发访问和弹性伸缩。针对安全与合规问题,研究团队提出基于OAuth2.0的身份认证机制、细粒度权限控制模型以及对个人敏感信息的加密存储方案,并通过区块链技术探索简历数据不可篡改与可追溯性。国内外学术期刊中已出现多篇关于基于SpringBoot与Vue框架构建招聘系统的案例研究,强调前后端分离、响应式设计以及持续集成/持续交付(CI/CD)流程的实践价值。

在技术实现层面,国外研究更倾向于使用开源容器化平台Docker与编排工具Kubernetes进行系统部署,以实现零停机升级与自动扩容。国内研究则侧重于将SpringBoot的模块化特性与Vue的组件化开发相结合,形成可复用的业务模块和统一的用户交互体验。两者在性能评估上均采用大规模简历数据集进行实验,结果表明微服务架构与容器化部署能够显著提升系统吞吐量和响应速度。关于算法创新方面,国外研究聚焦于多模态学习,将文本、结构化数据与图像信息融合,以提升候选人画像的完整性;国内研究则更多探索基于规则与机器学习混合模型的混合筛选策略,以兼顾可解释性与准确率。

总体而言,国内外在企业招聘与简历筛选系统的研究方向呈现出技术深度与应用广度并行的发展趋势。国外学术界在算法创新、系统可解释性以及跨国数据合规方面具有领先优势;国内研究则在快速迭代、行业落地与本土化需求满足方面表现突出。未来,随着人工智能技术的进一步成熟以及全球数据治理标准的统一,二者有望在协同创新与标准制定中形成互补,为构建更高效、公平、可持续的人才招聘生态提供理论与技术支撑。

四、预期达到目标及解决的关键问题

本研究旨在构建一套基于SpringBoot与Vue技术栈的企业招聘与简历筛选系统,系统化实现前后端分离、微服务架构以及容器化部署,以满足现代企业在人才引进过程中的高并发访问与快速迭代需求。通过模块化设计,后端将实现身份认证、权限控制、简历存储与智能匹配等核心业务;前端则采用响应式组件化开发,为招聘方提供直观友好的操作界面。系统整体将支持多租户管理与可插拔插件机制,以便企业根据自身业务场景灵活扩展功能。

在性能与效果方面,预期目标包括:在10,000名并发用户访问下,系统平均响应时间不超过200毫秒;简历筛选算法的候选人匹配准确率达到90%以上;系统可在24小时内完成对100,000份简历的批量处理;以及通过持续集成与持续交付流程实现零停机升级。为实现上述目标,后端将采用SpringBoot的模块化特性与Docker容器化技术,前端将利用Vue的热更新与懒加载机制,以降低资源消耗并提升用户体验。

关键研究问题主要集中在四个方面。首先,简历数据来源多样且结构不统一,如何构建高效的数据清洗与标准化流程,以保证后续算法输入的质量,是系统实现的前提。其次,智能匹配模型需兼顾准确性与可解释性,如何在深度学习模型中嵌入因果推断或注意力机制,以降低算法偏见并提升招聘方对结果的信任度,也是亟待解决的问题。第三,系统必须严格遵守GDPR等国际数据保护法规,如何在不泄露个人敏感信息的前提下实现模型训练与预测,是技术与合规双重挑战。最后,在大规模部署场景下,如何实现弹性伸缩、故障隔离与灰度发布,以保证系统的高可用性与可维护性,也是关键技术难点。

综上所述,本研究的预期目标在于构建一套安全、可扩展且智能化的企业招聘与简历筛选平台;其关键问题则围绕数据异构、算法公平、合规安全与系统弹性展开。通过对上述问题的系统研究与技术攻关,期望为企业人才引进提供高效、精准且可持续的技术支撑。

五、研究内容

本研究以构建基于SpringBoot与Vue技术栈的企业招聘与简历筛选系统为核心目标,系统性地阐述前后端分离架构、微服务设计与容器化部署方案。后端采用SpringBoot框架实现业务模块化,包括身份认证、权限控制、简历存储、职位发布与智能匹配等功能;前端则利用Vue的组件化与响应式特性,构建交互友好的用户界面,并通过Axios实现高效的数据交互。系统整体采用微服务架构,将核心业务拆分为独立服务,并通过Spring Cloud配置中心、Eureka注册与发现以及Zuul网关实现服务治理与统一入口;容器化部署则借助Docker与Kubernetes,实现弹性伸缩、滚动升级与灰度发布。

数据层面,本研究首先设计统一的简历数据模型,兼顾结构化字段(如教育背景、工作经历、技能标签)与非结构化文本(如自我介绍、项目描述)。随后构建高效的数据清洗与标准化流程,利用正则表达式与自然语言处理工具对文本进行分词、词性标注与命名实体识别,最终生成结构化特征向量。为支持多语言简历,本研究进一步引入多语种词向量模型,实现跨语言信息抽取与匹配。

在智能匹配算法方面,系统采用基于深度学习的候选人画像构建方法,将简历文本与职位描述映射到共享语义空间,并利用多层感知机或Transformer模型计算相似度。为提升算法可解释性,本研究嵌入注意力机制与因果推断模块,能够对匹配结果进行可视化说明并评估潜在偏见。算法训练采用分布式训练框架,支持GPU加速与多机并行,以满足大规模数据集的需求。

安全与合规是系统设计的重要考量。系统实现OAuth2.0授权框架,细粒度权限控制基于RBAC模型;个人敏感信息采用AES-256加密存储,并通过日志审计记录访问轨迹;同时,系统支持GDPR、CCPA等数据保护法规的合规检查与数据脱敏功能。为保障系统可靠性,本研究引入熔断器、限流与降级策略,并通过Prometheus与Grafana实现实时监控与告警。

部署与运维层面,系统采用Docker Compose进行本地开发环境搭建,生产环境则使用Kubernetes集群实现自动扩容与滚动升级。CI/CD流水线通过Jenkins或GitLab CI完成代码构建、单元测试、集成测试与镜像推送;灰度发布机制确保新功能上线后可逐步验证其稳定性。系统性能评估将基于Apache JMeter与Locust进行压力测试,指标包括吞吐量、响应时间与错误率;算法效果评估则通过AUC、Precision@k等指标对匹配准确率进行量化。

综上所述,本研究从系统架构、数据处理、智能匹配、安全合规与运维部署等多维度展开,旨在构建一套安全、高效、可扩展且具备可解释性的企业招聘与简历筛选平台,为现代企业人才引进提供技术支撑。

六、需求分析

用户需求方面,系统首先需满足招聘方的高效管理需求,招聘经理与人力资源专员需要能够快速发布职位信息、查看候选人简历、对简历进行批量筛选与标注,并通过统一的工作流完成面试安排与录用决策。其次,候选人端需提供便捷的简历上传与自我展示功能,支持多种文件格式与在线编辑,同时需要实时反馈简历投递状态并接收企业邀请。再次,系统应支持多租户管理,使得不同企业在同一平台上能够独立运营、数据隔离且统一维护。最后,系统需兼顾合规与安全需求,满足个人信息保护法规的要求,并为管理员提供权限管理与审计日志功能,以便追溯操作历史。

功能需求方面,系统应实现用户身份认证与授权模块,支持OAuth2.0单点登录以及基于角色的访问控制;职位管理模块需支持职位发布、编辑、归档与状态跟踪,并提供多维度筛选与排序;简历管理模块需实现简历上传、结构化解析、关键词索引与全文检索,并允许招聘方对简历进行评分、标签化与批注;智能匹配模块需集成自然语言处理与机器学习算法,对职位描述与候选人简历进行语义匹配,自动生成匹配度排名并提供可解释性报告;面试安排模块需支持日程冲突检测、会议链接生成与提醒通知;企业与候选人双方的消息中心需实现即时通讯、文件共享与历史记录查询;数据分析与报表模块需提供招聘渠道效果、简历来源分布、面试通过率等关键指标的可视化展示;系统管理模块需包含用户管理、权限分配、日志审计与系统监控功能,并支持容器化部署与弹性伸缩。上述功能将通过前后端分离的技术架构实现,前端采用Vue组件化设计,后端采用SpringBoot微服务框架,以确保系统的可扩展性、可维护性与高并发性能。

七、可行性分析

经济可行性方面,本系统的研发成本主要包括软件开发、硬件设备、云服务及运维费用。采用SpringBoot与Vue技术栈均为开源框架,能够显著降低许可费用;容器化部署与微服务架构通过Docker与Kubernetes实现资源的弹性分配,从而在云平台上实现按需计费,进一步降低基础设施支出。根据市场调研,企业招聘系统的平均年使用费用在数万元至数十万元之间,本系统通过提供免费基础版与增值订阅模式,可在短期内实现收入回流;同时,智能匹配与数据分析功能为企业带来招聘周期缩短、人才质量提升等效益,能够为客户创造显著的经济价值。若以中小型企业为主要目标用户,其对成本敏感度较高,本系统通过模块化付费与按需扩展的商业模式,能够满足不同规模企业的预算需求,从而实现可观的市场渗透率与利润空间。

社会可行性方面,随着数字化招聘与人才信息化管理的普及,企业对高效、精准的人才获取渠道需求日益增长;本系统通过自动化筛选与智能匹配技术,能够降低人力资源部门的工作负担,并提升招聘公平性与透明度,从而在社会层面促进就业机会的均衡分配。与此同时,系统在数据安全与隐私保护方面采用OAuth2.0授权、细粒度权限控制以及端到端加密存储机制,符合GDPR、CCPA等国际数据保护法规,能够获得用户与监管机构的信任。系统还提供可解释性算法输出与审计日志功能,使企业能够追溯招聘决策过程,进一步提升招聘流程的合规性与社会责任感。值得注意的是,系统在推广过程中需配合行业协会与政府部门开展人才信息共享与标准制定,以确保技术落地的社会效益最大化。

技术可行性方面,SpringBoot框架具备成熟的社区生态与丰富的插件支持,可快速构建RESTful API;Vue前端则提供高效的组件化开发与响应式渲染,能够满足多租户、移动端兼容等需求。微服务架构通过Spring Cloud实现服务治理与统一配置,Docker容器化与Kubernetes编排保证了系统的弹性伸缩与高可用;在大规模并发访问下,通过负载均衡与熔断器机制,能够保持平均响应时间低于200毫秒。智能匹配模块采用Transformer或BERT等预训练模型,并结合多任务学习提升匹配准确率;模型训练可在GPU集群上进行分布式加速,满足海量简历的处理需求。安全层面,系统通过JWT与OAuth2.0实现无状态认证,细粒度权限控制基于RBAC实现;个人敏感信息采用AES-256加密存储,并通过日志审计与访问监控确保合规。综上所述,从技术选型、架构设计、性能保障与安全合规等方面来看,本系统具备高度可实现性,能够在实际运营中保持稳定、高效与安全。

八、功能分析

系统功能模块可划分为七大核心组成部分,分别为用户身份与权限管理模块、企业租户管理模块、职位发布与管理模块、简历上传与解析模块、智能匹配与筛选模块、面试安排与沟通模块以及数据分析与报表模块。用户身份与权限管理模块负责实现OAuth2.0单点登录机制,并通过细粒度基于角色的访问控制(RBAC)对不同用户组进行权限分配;该模块同时提供多因素认证与密码加盐存储功能,以保障系统安全。企业租户管理模块支持多租户隔离,允许每个企业拥有独立的数据空间与配置文件,并通过租户级别的资源配额与计费策略实现弹性扩容。职位发布与管理模块提供职位信息的创建、编辑、归档与状态跟踪功能,并支持多维度筛选与排序,以便招聘方快速定位候选人。简历上传与解析模块支持多种文件格式(如PDF、Word、TXT)的上传,并利用自然语言处理技术对简历文本进行分词、实体识别与结构化抽取,最终生成统一的简历数据模型;该模块还实现全文检索与关键词索引,以提高检索效率。智能匹配与筛选模块将职位描述与候选人简历映射到共享语义空间,采用Transformer或BERT等预训练模型计算相似度,并通过注意力机制提供匹配结果可解释性;该模块支持批量评分、标签化与人工干预,以实现人机协同筛选。面试安排与沟通模块集成日程冲突检测、会议链接生成与提醒通知功能,支持多渠道即时通讯(邮件、短信、WebSocket)以及文件共享,确保招聘流程的顺畅衔接。数据分析与报表模块提供招聘渠道效果、简历来源分布、面试通过率等关键指标的可视化展示,并支持自定义报表导出;该模块同时提供日志审计与系统监控接口,以满足合规与运维需求。综上所述,系统通过上述七大功能模块的协同工作,实现从用户身份验证到招聘决策全过程的高效、精准与安全管理。

九、数据库设计

表名:Users
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 用户ID | 36 | VARCHAR(36) | PK 主键,自动生成UUID。
username | 登录名 | 50 | VARCHAR(50) | 唯一约束。
password_hash| 密码哈希值|255|VARCHAR(255)| |
email| 邮箱地址|100|VARCHAR(100)| |
created_at| 创建时间|19|DATETIME||
updated_at| 更新时间|19|DATETIME||

表名:Roles
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 角色ID | 36 | VARCHAR(36) | PK 主键,自动生成UUID。
name| 角色名称|50|VARCHAR(50)| 唯一约束。
description| 角色描述|255|VARCHAR(255)| |

表名:Permissions
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 权限ID | 36 | VARCHAR(36) | PK 主键,自动生成UUID。
action| 操作标识|100|VARCHAR(100)| |
description| 权限描述|255|VARCHAR(255)|

表名:UserRoles
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
user_id | 用户ID | 36 | VARCHAR(36) | FK 关联Users.id。
role_id| 角色ID|36|VARCHAR(36)| FK 关联Roles.id。

表名:Tenants
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 租户ID | 36 | VARCHAR(36) | PK 主键,自动生成UUID。
name| 企业名称|100|VARCHAR(100)| 唯一约束。
contact_email| 联系邮箱|100|VARCHAR(100)|
created_at| 创建时间|19|DATETIME||

表名:TenantUsers
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
tenant_id | 租户ID | 36 | VARCHAR(36) | FK 关联Tenants.id。
user_id| 用户ID|36|VARCHAR(36)| FK 关联Users.id。

表名:Positions
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 职位ID | 36 | VARCHAR(36) | PK 主键,自动生成UUID。
tenant_id| 所属租户|36|VARCHAR(36)| FK 关联Tenants.id。
title| 职位名称|100|VARCHAR(100)|
description| 职位描述|255|TEXT||
location| 工作地点|100|VARCHAR(100)|
posted_at| 发布时间|19 |DATETIME||

表名:PositionSkills
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
position_id | 职位ID | 36 | VARCHAR(36) | FK 关联Positions.id。
skill_name| 技能名称|50|VARCHAR(50)|

表名:Resumes
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 简历ID | 36 | VARCHAR(36) | PK 主键,自动生成UUID。
tenant_id| 所属租户|36|VARCHAR(36)| FK 关联Tenants.id。
candidate_name| 候选人姓名|100|VARCHAR(100)|
email| 邮箱地址|100|VARCHAR(100)|
phone| 联系电话|20 |VARCHAR(20)||
summary| 简历摘要|255 |TEXT||
created_at | 上传时间 |19 |DATETIME||

表名:ResumeSkills
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
resume_id| 简历ID|36|VARCHAR(36)| FK 关联Resumes.id。
skill_name| 技能名称|50|VARCHAR(50)|

表名:Interviews
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 面试ID | 36 | VARCHAR(36) | PK 主键,自动生成UUID。
resume_id| 候选人简历|36|VARCHAR(36)| FK 关联Resumes.id。
position_id| 职位ID|36|VARCHAR(36)| FK 关联Positions.id。
scheduled_at| 面试时间|19 |DATETIME||
status | 面试状态(已安排、已完成、已取消) |20 |VARCHAR(20)||

表名:AuditLogs
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id| 日志ID|36|VARCHAR(36)| PK 主键,自动生成UUID。
user_id| 操作人ID|36|VARCHAR(36)| FK 关联Users.id。
action| 操作描述|255|TEXT||
timestamp | 操作时间 |19 |DATETIME||

以上表结构遵循第一范式至第三范式,避免数据冗余与更新异常;主键与外键关系清晰,支持完整的业务流程。

十、建表语句

CREATE DATABASE IF NOT EXISTS recruitment_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE recruitment_system;

-- 用户表
CREATE TABLE IF NOT EXISTS Users (
id CHAR(36) NOT NULL,
username VARCHAR(50) NOT NULL,
password_hash VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uq_users_username (username),
UNIQUE KEY uq_users_email (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 角色表
CREATE TABLE IF NOT EXISTS Roles (
id CHAR(36) NOT NULL,
name VARCHAR(50) NOT NULL,
description VARCHAR(255),
PRIMARY KEY (id),
UNIQUE KEY uq_roles_name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 权限表
CREATE TABLE IF NOT EXISTS Permissions (
id CHAR(36) NOT NULL,
action VARCHAR(100) NOT NULL,
description VARCHAR(255),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 用户角色关联表
CREATE TABLE IF NOT EXISTS UserRoles (
user_id CHAR(36) NOT NULL,
role_id CHAR(36) NOT NULL,
PRIMARY KEY (user_id, role_id),
CONSTRAINT fk_userroles_user FOREIGN KEY (user_id) REFERENCES Users(id) ON DELETE CASCADE,
CONSTRAINT fk_userroles_role FOREIGN KEY (role_id) REFERENCES Roles(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 租户表
CREATE TABLE IF NOT EXISTS Tenants (
id CHAR(36) NOT NULL,
name VARCHAR(100) NOT NULL,
contact_email VARCHAR(100),
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uq_tenants_name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 租户用户关联表
CREATE TABLE IF NOT EXISTS TenantUsers (
tenant_id CHAR(36) NOT NULL,
user_id CHAR(36) NOT NULL,
PRIMARY KEY (tenant_id, user_id),
CONSTRAINT fk_tenantusers_tenant FOREIGN KEY (tenant_id) REFERENCES Tenants(id) ON DELETE CASCADE,
CONSTRAINT fk_tenantusers_user FOREIGN KEY (user_id) REFERENCES Users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 职位表
CREATE TABLE IF NOT EXISTS Positions (
id CHAR(36) NOT NULL,
tenant_id CHAR(36) NOT NULL,
title VARCHAR(100) NOT NULL,
description TEXT,
location VARCHAR(100),
posted_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_positions_tenant (tenant_id),
CONSTRAINT fk_positions_tenant FOREIGN KEY (tenant_id) REFERENCES Tenants(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 职位技能表
CREATE TABLE IF NOT EXISTS PositionSkills (
position_id CHAR(36) NOT NULL,
skill_name VARCHAR(50) NOT NULL,
PRIMARY KEY (position_id, skill_name),
CONSTRAINT fk_positionskills_position FOREIGN KEY (position_id) REFERENCES Positions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 简历表
CREATE TABLE IF NOT EXISTS Resumes (
id CHAR(36) NOT NULL,
tenant_id CHAR(36) NOT NULL,
candidate_name VARCHAR(100) NOT NULL,
email VARCHAR(100),
phone VARCHAR(20),
summary TEXT,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_resumes_tenant (tenant_id),
CONSTRAINT fk_resumes_tenant FOREIGN KEY (tenant_id) REFERENCES Tenants(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 简历技能表
CREATE TABLE IF NOT EXISTS ResumeSkills (
resume_id CHAR(36) NOT NULL,
skill_name VARCHAR(50) NOT NULL,
PRIMARY KEY (resume_id, skill_name),
CONSTRAINT fk_resumeskills_resume FOREIGN KEY (resume_id) REFERENCES Resumes(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 面试表
CREATE TABLE IF NOT EXISTS Interviews (
id CHAR(36) NOT NULL,
resume_id CHAR(36) NOT NULL,
position_id CHAR(36) NOT NULL,
scheduled_at DATETIME NOT NULL,
status VARCHAR(20) NOT NULL,
PRIMARY KEY (id),
KEY idx_interviews_resume (resume_id),
KEY idx_interviews_position (position_id),
CONSTRAINT fk_interviews_resume FOREIGN KEY (resume_id) REFERENCES Resumes(id) ON DELETE CASCADE,
CONSTRAINT fk_interviews_position FOREIGN KEY (position_id) REFERENCES Positions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 审计日志表
CREATE TABLE IF NOT EXISTS AuditLogs (
id CHAR(36) NOT NULL,
user_id CHAR(36) NOT NULL,
action TEXT NOT NULL,
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_auditlogs_user (user_id),
CONSTRAINT fk_auditlogs_user FOREIGN KEY (user_id) REFERENCES Users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询