小明(实习生):李老师,我在实习期间想申请几天假,但不知道系统里怎么操作。
李老师(系统开发者):小明,别担心,我们的系统支持请假功能。你只需登录系统,填写请假信息即可。
小明:那系统是如何记录这些请假信息的呢?
李老师:首先,我们需要一个数据库表来存储请假信息。比如,创建一个名为`leave_records`的表。
CREATE TABLE leave_records (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
reason VARCHAR(255) NOT NULL,
status ENUM('pending', 'approved', 'rejected') DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
]]>
小明:明白了,这个表包含了请假的基本信息。那么,用户提交请假后,系统会怎么处理呢?
李老师:系统会先验证用户是否有权限提交请假申请。如果通过验证,就将信息插入到`leave_records`表中。
INSERT INTO leave_records (user_id, start_date, end_date, reason)
VALUES (1, '2023-11-01', '2023-11-05', '家庭事务');
]]>
小明:然后呢?管理员看到申请后如何处理?
李老师:管理员可以登录系统查看所有待处理的请假申请,并通过更新`status`字段来批准或拒绝。
UPDATE leave_records SET status = 'approved'
WHERE id = 1 AND status = 'pending';
]]>
小明:这样就能完成整个流程了吗?
李老师:是的。为了方便查询,我们还可以提供统计功能,比如统计某段时间内请假总人数。
SELECT COUNT(*) AS total_leaves FROM leave_records
WHERE start_date >= '2023-11-01' AND end_date <= '2023-11-30';
]]>
小明:谢谢李老师的详细解释!现在我完全清楚了。
李老师:不客气,如果你有任何问题,随时来找我。