|
|
1 ano atrás | |
|---|---|---|
| .. | ||
| README.md | 1 ano atrás | |
本目录包含学生请假管理系统的数据库设计文件,包括请假类型配置表和请假记录表。
学生请假/
├── README.md # 本说明文档
├── xg_leave_type_config.sql # 请假类型配置表
├── xg_student_leave.sql # 学生请假表
└── xg_student_leave_sample_data.sql # 示例数据
xg_leave_type_config)功能: 配置不同类型的请假规则和参数
主要字段:
leave_type_code: 请假类型编码(如:PERSONAL_LEAVE、SICK_LEAVE)leave_type_name: 请假类型名称(如:事假、病假)need_location_on_apply: 请假是否需要上传地理位置need_photo_on_cancel: 销假是否必须上传照片need_location_on_cancel: 销假是否需要上传地理位置need_cancel_for_non_leave: 非离校请假是否需要销假can_apply_in_advance: 是否可以提前请假max_apply_duration: 请假最大申请时长(天)cancel_overdue_reminder: 销假逾期提醒时长(天)xg_student_leave)功能: 记录学生的请假申请、审批和销假信息
主要字段:
student_id: 学生IDstudent_name: 学生姓名student_no: 学号class_id/class_name: 班级信息major_id/major_name: 专业信息college_id/college_name: 学院信息leave_type_code/leave_type_name: 请假类型start_time/end_time: 开始/结束时间(年月日时分秒)leave_duration: 请假时长(天)is_leave_school: 是否离校(0-否,1-是)emergency_contact: 紧急联系人emergency_phone: 紧急联系电话leave_reason: 请假原因leave_location: 请假时地理位置attachment_oss_ids: 附件OSS文件ID(逗号分隔)approval_status: 审批状态(0-待审批,1-已通过,2-已拒绝,3-已取消)approval_opinion: 审批意见approval_time: 审批时间approval_by/approval_by_name: 审批人信息cancel_status: 销假状态(0-未销假,1-已销假,2-逾期未销假)cancel_time: 销假时间cancel_location: 销假地理位置cancel_photo_oss_ids: 销假照片OSS文件IDcancel_remark: 销假备注idx_tenant_ididx_student_idstudent_no: 学号idx_class_ididx_college_ididx_leave_type_codeidx_start_time、idx_end_timeidx_approval_status、idx_cancel_statusidx_create_timeidx_is_leave_schoolidx_student_time_rangeidx_class_approval_statusidx_college_leave_typeidx_time_approval_status示例数据包含8条不同类型的请假记录:
-- 先创建请假类型配置表
source xg_leave_type_config.sql;
-- 再创建学生请假表
source xg_student_leave.sql;
-- 插入示例数据(可选)
source xg_student_leave_sample_data.sql;
SELECT * FROM xg_student_leave
WHERE student_id = 10001
ORDER BY create_time DESC;
SELECT * FROM xg_student_leave
WHERE approval_status = '0'
ORDER BY create_time ASC;
SELECT * FROM xg_student_leave
WHERE cancel_status = '2'
AND end_time < NOW();
SELECT
class_name,
COUNT(*) as total_count,
SUM(CASE WHEN approval_status = '1' THEN 1 ELSE 0 END) as approved_count,
SUM(CASE WHEN approval_status = '2' THEN 1 ELSE 0 END) as rejected_count
FROM xg_student_leave
WHERE create_time >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY class_id, class_name;
deleted字段进行逻辑删除,禁止物理删除tenant_id字段,支持多租户