mysql考勤系统设计函数_Mysql实战之员工考勤系统数据库建立
时间: 2023-08-15 14:07:52 浏览: 126
为实现员工考勤系统,需要建立以下几个表:
1.员工表(employee):用于存储员工基本信息,包括员工编号、姓名、性别、部门等。
2.考勤表(attendance):用于存储员工的考勤记录,包括考勤日期、上班时间、下班时间、迟到时间、早退时间、加班时间等。
3.部门表(department):用于存储部门信息,包括部门编号、部门名称等。
4.职位表(position):用于存储职位信息,包括职位编号、职位名称等。
5.请假表(leave):用于存储员工的请假记录,包括请假日期、请假类型、请假原因等。
6.加班表(overtime):用于存储员工的加班记录,包括加班日期、加班时长、加班原因等。
7.考勤规则表(attendance_rule):用于存储考勤规则信息,包括迟到早退规则、加班规则等。
下面是建立员工表的SQL语句:
```
CREATE TABLE `employee` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '员工编号',
`name` varchar(50) NOT NULL COMMENT '员工姓名',
`sex` varchar(10) NOT NULL COMMENT '员工性别',
`department_id` int(11) NOT NULL COMMENT '部门编号',
`position_id` int(11) NOT NULL COMMENT '职位编号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='员工表';
```
建立考勤表的SQL语句:
```
CREATE TABLE `attendance` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '考勤编号',
`employee_id` int(11) NOT NULL COMMENT '员工编号',
`attendance_date` date NOT NULL COMMENT '考勤日期',
`start_time` datetime DEFAULT NULL COMMENT '上班时间',
`end_time` datetime DEFAULT NULL COMMENT '下班时间',
`late_time` int(11) NOT NULL DEFAULT '0' COMMENT '迟到时间(分钟)',
`early_time` int(11) NOT NULL DEFAULT '0' COMMENT '早退时间(分钟)',
`overtime` int(11) NOT NULL DEFAULT '0' COMMENT '加班时间(分钟)',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考勤表';
```
建立部门表的SQL语句:
```
CREATE TABLE `department` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门编号',
`name` varchar(50) NOT NULL COMMENT '部门名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='部门表';
```
建立职位表的SQL语句:
```
CREATE TABLE `position` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '职位编号',
`name` varchar(50) NOT NULL COMMENT '职位名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='职位表';
```
建立请假表的SQL语句:
```
CREATE TABLE `leave` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '请假编号',
`employee_id` int(11) NOT NULL COMMENT '员工编号',
`leave_date` date NOT NULL COMMENT '请假日期',
`leave_type` varchar(50) NOT NULL COMMENT '请假类型',
`reason` varchar(200) NOT NULL COMMENT '请假原因',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='请假表';
```
建立加班表的SQL语句:
```
CREATE TABLE `overtime` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '加班编号',
`employee_id` int(11) NOT NULL COMMENT '员工编号',
`overtime_date` date NOT NULL COMMENT '加班日期',
`overtime_time` int(11) NOT NULL DEFAULT '0' COMMENT '加班时长(分钟)',
`reason` varchar(200) NOT NULL COMMENT '加班原因',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='加班表';
```
建立考勤规则表的SQL语句:
```
CREATE TABLE `attendance_rule` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '规则编号',
`late_time_rule` int(11) NOT NULL DEFAULT '0' COMMENT '迟到时间规则(分钟)',
`early_time_rule` int(11) NOT NULL DEFAULT '0' COMMENT '早退时间规则(分钟)',
`overtime_rule` int(11) NOT NULL DEFAULT '0' COMMENT '加班时间规则(分钟)',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考勤规则表';
```
以上是建立员工考勤系统的表结构,根据实际需求可以进行修改和优化。同时需要编写相应的存储过程、触发器和函数等来实现系统功能。
阅读全文