0

0

如何使用mysql实现员工请假管理_mysql员工请假数据库设计

P粉602998670

P粉602998670

发布时间:2025-12-13 12:45:53

|

738人浏览过

|

来源于php中文网

原创

员工请假管理系统通过MySQL数据库设计实现,包含员工表、请假类型表、请假记录表和假期余额表四张核心表。首先建立合理的表结构并设置外键约束确保数据一致性;接着通过SQL语句实现请假申请插入、状态更新、假期余额同步及多维度查询统计;最后结合触发器自动更新余额、控制审批流程状态流转,并注意节假日计算与历史数据归档。该设计支持高效管理请假信息,可扩展为完整应用系统。

如何使用mysql实现员工请假管理_mysql员工请假数据库设计

员工请假管理系统是企业人力资源管理的重要组成部分,使用 MySQL 设计合理的数据库结构,可以高效地记录、查询和管理员工的请假信息。下面从数据库设计和关键功能实现两个方面进行说明。

1. 数据库表结构设计

为实现请假管理,建议创建以下几个核心数据表:

员工表(employees)

存储员工基本信息:

  • employee_id(主键,自增)
  • name(姓名)
  • department(部门)
  • position(职位)
  • entry_date(入职日期)
  • status(在职状态:在职/离职)

请假类型表(leave_types)

定义支持的请假类型,如年假、病假、事假等:

  • type_id(主键)
  • type_name(如“年假”、“病假”)
  • description(说明)

请假记录表(leave_requests)

记录每次请假申请的核心信息:

  • request_id(主键,自增)
  • employee_id(外键,关联 employees)
  • type_id(外键,关联 leave_types)
  • start_date(开始日期)
  • end_date(结束日期)
  • days(请假天数,可计算)
  • reason(请假原因)
  • status(状态:待审批、已批准、已拒绝、已撤销)
  • apply_time(申请时间)
  • approve_time(审批时间,可为空)
  • approver_id(审批人 employee_id,可为空)

假期余额表(leave_balance)

记录每位员工各类假期的剩余天数:

  • balance_id(主键)
  • employee_id(外键)
  • type_id(外键)
  • total_days(总天数,如年假10天)
  • used_days(已使用天数)
  • remaining_days(剩余天数)
  • year(所属年份)

2. 关键SQL操作示例

插入请假申请:

露阳PHP企业系统1.0
露阳PHP企业系统1.0

1.) 将所有文件解压到php环境中,本程序才用smarty+php+mysql设计。如果运行不了,请修改hhy文件夹下的smarty.php文件改法请看说明2.) 修改configs下的config.inc.php下的连接数据库的密码和用户名3.) 本程序没有做安全页面,人工导入sql.inc到mysql数据库。管理员初始化帐号为admin,密码为hhy。后台地址:http://你的网站地址/h

下载
INSERT INTO leave_requests 
(employee_id, type_id, start_date, end_date, days, reason, status, apply_time) 
VALUES (1001, 1, '2025-04-01', '2025-04-03', 3, '家庭事务', '待审批', NOW());

更新请假状态(审批通过):

UPDATE leave_requests 
SET status = '已批准', approve_time = NOW(), approver_id = 1005 
WHERE request_id = 101;

同步更新假期余额(以年假为例):

UPDATE leave_balance 
SET used_days = used_days + 3, remaining_days = remaining_days - 3 
WHERE employee_id = 1001 AND type_id = 1 AND year = 2025;

查询某员工所有请假记录:

SELECT lr.request_id, lt.type_name, lr.start_date, lr.end_date, lr.days, lr.reason, lr.status 
FROM leave_requests lr
JOIN leave_types lt ON lr.type_id = lt.type_id
WHERE lr.employee_id = 1001
ORDER BY lr.apply_time DESC;

统计各部门请假情况:

SELECT d.department, lt.type_name, SUM(lr.days) as total_days
FROM leave_requests lr
JOIN employees e ON lr.employee_id = e.employee_id
JOIN leave_types lt ON lr.type_id = lt.type_id
GROUP BY d.department, lt.type_name;

3. 实现注意事项

在实际开发中需要注意以下几点:

  • 使用外键约束保证数据一致性,如 employee_id 必须存在于 employees 表中
  • 请假天数应自动计算(考虑工作日或排除节假日需结合业务逻辑)
  • 审批流程可通过 status 字段控制状态流转
  • 可添加触发器,在请假被批准后自动更新 leave_balance 表
  • 对历史数据归档,避免单表数据过大

基本上就这些。合理设计表结构,配合清晰的SQL操作,就能用MySQL搭建一个实用的员工请假管理系统。后续可结合前端界面或API接口扩展为完整应用。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

685

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

323

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

348

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1117

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

359

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

717

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

577

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

419

2024.04.29

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 805人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号