好的,以下是考勤系统数据表设计:

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文件能够对你有所帮助。

你是一名高价java开放工程师请帮我设计一个考勤系统数据表设计并解释和生成sql文件

原文地址: https://www.cveoy.top/t/topic/ME0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录