一、项目背景
随着企业的规模不断扩大,企业人事管理的日趋复杂和企业人员的增多,迫切需要开发基于网络的员工考勤管理系统来提高管理工作的效率。
二、研究目的
以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并开发一个员工考勤管理系统, 提供一个科学合理的考勤管理解决方案。
系统目标如下:
1. 提供更加便捷、简单的操作。
2. 优化企业原有的考勤管理制度,为不同管理层次提供对应的功能。
3. 节省考勤管理的成本、提高企业考勤管理的透明度和效率。
4. 对系统提供必要的权限管理。
5. 为企业实现整体信息化的其他相关系统提供必要的数据支持。
本设计利用Mysql建立数据库,表格化存储,利用表的增,删,改,查功能来管理员工信息,对数据库设定必要的权限,只有具有权限的人才能进行查看,修改数据。
三、需求分析
1、用户管理模块
每增加一名新员工,需要设置权限和密码。当该员工需要更改密码时,可以在密码模块进行更改。当某位员工离职后,从系统中删除该用户信息。修改用户权限,使某些员工只能有某些权限。
2、基本资料管理模块
增加,删除,修改,查询员工的基本信息,考勤信息,统计其出差,加班,请假等信息。
四、数据流程图和E-R图
1、数据流程图
2、功能模块图
3、E-R 图
(1)员工E-R图
(2)出勤E-R图
(3)加班E-R图
(4)出差E-R图
(5)请假E-R图
(6)部门E-R图
(7)工种E-R图
五、数据表建立
(1)创建员工表
CREATE TABLE IF NOT EXISTS employees(
employee_id INT PRIMARY KEY UNIQUE NOT NULL,
eName VARCHAR(20) NOT NULL,
sex ENUM('男','女') NOT NULL,
age INT NOT NULL,
phone CHAR(20) NOT NULL,
email CHAR(20) NOT NULL,
department_id INT NOT NULL,
manager_id INT NOT NULL,
job_id INT NOT NULL,
eAttend TINYINT DEFAULT 0 NOT NULL
);
DESC employees;
(2)创建考勤表
CREATE TABLE IF NOT EXISTS attendance(
attendID INT PRIMARY KEY UNIQUE NOT NULL,
employee_id INT NOT NULL,
eName VARCHAR(20) NOT NULL,
onWork_am DATETIME NOT NULL,
offWork_am DATETIME NOT NULL,
onWork_pm DATETIME NOT NULL,
offWork_pm DATETIME NOT NULL,
recordTime DATETIME NOT NULL
);
DESC attendance;
(3)创建加班表
REATE TABLE IF NOT EXISTS overtime(
otID INT PRIMARY KEY UNIQUE NOT NULL,
employee_id INT NOT NULL,
eName VARCHAR(20) NOT NULL,
otStyle VARCHAR(20) NOT NULL,
otStartTime DATETIME NOT NULL,
otEndTime DATETIME NOT NULL
);
DESC overtime;
(4)创建出差表
CREATE TABLE IF NOT EXISTS businessTrip(
btID INT PRIMARY KEY UNIQUE NOT NULL,
employee_id INT NOT NULL,
eName VARCHAR(20) NOT NULL,
btStyle VARCHAR(20) NOT NULL,
btStartTime DATETIME NOT NULL,
btEndTime DATETIME NOT NULL
);
DESC businessTrip;
(5) 创建请假表
CREATE TABLE IF NOT EXISTS absence(
abID INT PRIMARY KEY UNIQUE NOT NULL,
employee_id INT NOT NULL,
eName VARCHAR(20) NOT NULL,
abStyel VARCHAR(20) NOT NULL,
abStartTime DATETIME NOT NULL,
abEndTime DATETIME NOT NULL
);
DESC absence;
(6)建立部门表
CREATE TABLE IF NOT EXISTS department(
department_id INT PRIMARY KEY UNIQUE NOT NULL,
department_name VARCHAR(20) NOT NULL,
manager_id INT NOT NULL
);
DESC department;
(7)建立工种表
CREATE TABLE IF NOT EXISTS jobs(
job_id INT PRIMARY KEY UNIQUE NOT NULL,
job_name VARCHAR(20) NOT NULL,
minSalary INT NOT NULL,
maxSalary INT NOT NULL
);
DESC jobs;