你是一名高价java开放工程师请帮我设计一个考勤系统数据表设计并解释和生成sql文件
好的,以下是考勤系统数据表设计:
1.员工表(employee)
- id:int,主键,自增
- name:varchar,员工姓名
- gender:varchar,性别
- phone:varchar,电话号码
- email:varchar,邮箱地址
- department_id:int,外键,所属部门id
2.部门表(department)
- id:int,主键,自增
- name:varchar,部门名称
3.考勤记录表(attendance)
- id:int,主键,自增
- employee_id:int,外键,员工id
- check_in_time:datetime,上班打卡时间
- check_out_time:datetime,下班打卡时间
4.假期记录表(holiday)
- id:int,主键,自增
- employee_id:int,外键,员工id
- start_date:date,开始日期
- end_date:date,结束日期
- type:varchar,假期类型(如年假、病假等)
- reason:varchar,请假原因
5.加班记录表(overtime)
- id:int,主键,自增
- employee_id:int,外键,员工id
- date:date,加班日期
- start_time:time,开始时间
- end_time:time,结束时间
- reason:varchar,加班原因
下面是生成的SQL文件:
CREATE TABLE `employee` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`gender` varchar(10) NOT NULL,
`phone` varchar(20) NOT NULL,
`email` varchar(255) NOT NULL,
`department_id` int NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_employee_department` (`department_id`),
CONSTRAINT `fk_employee_department` FOREIGN KEY (`department_id`) REFERENCES `department` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `department` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `attendance` (
`id` int NOT NULL AUTO_INCREMENT,
`employee_id` int NOT NULL,
`check_in_time` datetime NOT NULL,
`check_out_time` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_attendance_employee` (`employee_id`),
CONSTRAINT `fk_attendance_employee` FOREIGN KEY (`employee_id`) REFERENCES `employee` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `holiday` (
`id` int NOT NULL AUTO_INCREMENT,
`employee_id` int NOT NULL,
`start_date` date NOT NULL,
`end_date` date NOT NULL,
`type` varchar(50) NOT NULL,
`reason` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_holiday_employee` (`employee_id`),
CONSTRAINT `fk_holiday_employee` FOREIGN KEY (`employee_id`) REFERENCES `employee` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `overtime` (
`id` int NOT NULL AUTO_INCREMENT,
`employee_id` int NOT NULL,
`date` date NOT NULL,
`start_time` time NOT NULL,
`end_time` time NOT NULL,
`reason` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_overtime_employee` (`employee_id`),
CONSTRAINT `fk_overtime_employee` FOREIGN KEY (`employee_id`) REFERENCES `employee` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
希望这个数据表设计和SQL文件能够对你有所帮助。
原文地址: https://www.cveoy.top/t/topic/ME0 著作权归作者所有。请勿转载和采集!