- 引言
人事管理系统是针对企业内部人事管理设计,分角色实现对公司部门及各部门员工的增、删、改、查以及对员工考勤的管理。
-
- 编写目的:
在系统需求分析的基础上,对需求分析中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明,并作为测试和维护的参考文档。
详细设计说明书的预期用户为所有与此项目相关的决策人员、开发人员和测试人员。
1.2 项目背景:
项目名称:人事管理系统
解决方案名称:CompanyPersonnelManagementSystem
本项目创意的提出者:孙亚洲、何岁岁、刘盼盼
开发者:孙亚洲、何岁岁、刘盼盼
项目介绍:
人事管理是一套先进的管理模式,其实施要取得成功,必须有必需的技术和工具支持,公司人事管理软件(CPM)是实施人事部门人员管理职工必不可少的一套技术和工具集成支持平台。CPM管理系统基于通讯、计算机等信息技术,能实现企业对职工、部门的良好管理,能够协助管理者更好地完成管理的两项基本任务:管理和了解职工状况。
1.3 定义
CPM:CompanyPersonnelManagement,公司人事管理系统的缩写
命名规则:
※ 窗体
命名格式:功能模块名+Form (例如:部门管理窗体,SMF)
※ 控件
命名格式:窗体名+功能名+控件名(例如:部门管理窗体中的添加按钮,SMF_Addbtn)
字体格式:
主窗体控件:微软雅黑,五号,粗体,字体颜色:黑色
次窗体控件:微软雅黑,小五,粗体,字体颜色:黑色
※ 程序命名:
类:首字母大写
属性:首字母大写
方法:首字母大写
字段:单词首字母大写、
变量:小写
1.4参考资料:
详细设计说明书模板资料、《人事管理系统需求分析说明书》
- 数据库设计
数据库名称:HRManagement
2.1 数据库表列表
|------------|--------------|-------------------------------------------|
| 序号 | 关系名称 | 表描述 |
| 1 | 部门表 | 存储公司的部门名称 |
| 2 | 职位表 | 存储部门有哪些职位 |
| 3 | 性别表 | 存储人的性别 |
| 4 | 民族表 | 存储不同民族信息 |
| 5 | 学历表 | 存储不同的学历 |
| 6 | 员工表 | 存储公司的员工信息 |
| 7 | 工作时间类别表 | 标识时间种类 |
| 8 | 工作时间表 | 存储上下班时间信息 |
| 9 | 打卡状态 | 存储打卡正常、迟到、早退三种状态 |
| 10 | 上班打卡记录表 | 存储员工上班打卡信息 |
| 11 | 下班打卡记录表 | 存储员工下班打卡信息 |
| 12 | 管理员表 | 存储管理员级别的员工进入系统的用户名及密码信息,管理员有对员工和部门增删改查的权限 |
| 13 | 超级管理员表 | 存储超级管理员信息,超级管理员增加了对管理员信息查看、修改和删除的权限 |
| 14 | 用户表 | 存储员工进入系统的用户名及密码信息 |
2.2 逻辑结构设计:
|------------|--------------|--------------------------------------------------------------------------------|
| 序号 | 关系名称 | 关系的属性 |
| 1 | 部门表 | 部门ID、部门名称 |
| 2 | 职位表 | 职位ID、职位名称 |
| 3 | 性别表 | 性别ID、性别名称 |
| 4 | 民族表 | 民族ID、民族名称 |
| 5 | 学历表 | 学历ID、学历名 |
| 6 | 员工表 | Id、职工ID、姓名、性别ID、职位ID、部门ID、学历ID、生日、照片、籍贯、现住地址、民族ID、联系方式、工作年限、毕业院校、专业、身份证号码、入职时间 |
| 7 | 工作时间类别表 | 类别ID、类别名称 |
| 8 | 工作时间表 | 工作时间ID、工作时间、类别ID |
| 9 | 打卡状态 | 打卡状态ID、状态名称 |
| 10 | 上班打卡记录表 | 记录ID、打卡时间、状态ID、职工编号 |
| 11 | 下班打卡记录表 | 记录ID、打卡时间、状态ID、职工编号 |
| 12 | 管理员表 | 管理员ID、用户名、密码、职工编号 |
| 13 | 超级管理员表 | 超级管理员ID、用户名、密码、职工编号 |
| 14 | 用户表 | 用户ID、员工工号、密码 |
2.3 物理结构设计:
- 部门表 (Sections)
|-------------|------|--------------|----|----|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| SectionID | ID | Nvarchar(2) | No | 主键 |
| SectionName | 部门名称 | Nvarchar(20) | No | 唯一 |
- 职位表 (Positions)
|--------------|------|--------------|----|----|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| PositionID | ID | Nvarchar(2) | No | 主键 |
| PositionName | 职位名称 | Nvarchar(20) | No | 唯一 |
- 性别表 (Sexs)
|---------|------|-------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| SexID | ID | int | No | 主键,自增 |
| SexName | 性别名称 | Nvarchar(4) | No | 唯一 |
- 民族表 (Nations)
|------------|------|--------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| NationID | ID | int | No | 主键,自增 |
| NationName | 民族名称 | Nvarchar(16) | No | 唯一 |
- 学历表 (EduBackgrounds)
|-------------------|------|--------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| EduBackgroundID | ID | int | No | 主键,自增 |
| EduBackgroundName | 学历名称 | Nvarchar(10) | No | 唯一 |
- 员工表 (Staffs)
|-----------------|-------|--------------|-----|--------------------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| ID | ID | Int | No | 主键,自增 |
| StaffID | 职工ID | Nvarchar(10) | No | 组合项:部门ID+职位ID+数字标识 |
| StaffName | 姓名 | Nvarchar(10) | No | |
| SexID | 性别ID | Int | No | 外键 |
| PositionID | 职位ID | Varchar(4) | No | 外键 |
| EduBackgroundID | 学历ID | Int | No | 外键 |
| Birthday | 生日 | Nvachar(10) | Yes | |
| Picture | 照片 | Image | Yes | |
| NativePlace | 籍贯 | Nvarchar(40) | Yes | |
| NowAddress | 现住地址 | Nvarchar(40) | Yes | |
| IDcardNo | 身份证号码 | Nvarchar(18) | No | 唯一 |
| NationID | 民族ID | Int | Yes | 外键 |
| ContactWay | 联系方式 | Nvarchar(30) | Yes | |
| WorkSeniority | 工作年限 | Int | No | |
| SectionID | 部门ID | Nvarchar(2) | No | 外键 |
| GraduateSchool | 毕业院校 | Nvarchar(30) | Yes | |
| Major | 专业 | Nvarchar(16) | Yes | |
| EmployedDate | 入职时间 | Datetime | No | |
- 工作时间类别表 (WorkingTimeType)
|------------|------|--------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| WTTypeID | ID | int | No | 主键,自增 |
| WTTypeName | 类别名称 | Nvarchar(14) | No | 唯一 |
- 工作时间表 (WorkingTimes)
|---------------|------|-------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| WorkingTimeID | ID | int | No | 主键,自增 |
| WorkTime | 工作时间 | Nvarchar(5) | No | 唯一 |
| WTTypeID | 类别ID | Int | No | 外键 |
- 打卡状态 (ClockStatus)
|-----------------|------|--------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| ClockStatusID | ID | int | No | 主键,自增 |
| ClockStatusName | 状态名称 | Nvarchar(10) | No | 唯一 |
- 上班打卡记录表 (StartClockRecords)
|-----------------|--------|--------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| SClockRecordsID | ID | int | No | 主键,自增 |
| SColckTime | 打卡时间 | DateTime | No | |
| SClockStatusID | 打卡状态ID | Int | No | 外键 |
| StaffID | 职工ID | Nvarchar(10) | No | 外键 |
- 下班打卡记录表 (EndClockRecords)
|------------------|--------|--------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| EClockRecords ID | ID | int | No | 主键,自增 |
| EColckTime | 打卡时间 | DateTime | No | |
| EClockStatusID | 打卡状态ID | Int | No | 外键 |
| StaffID | 职工ID | Nvarchar(10) | No | 外键 |
- 管理员表 (Adms)
|---------|------|--------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| AdmID | ID | int | No | 主键,自增 |
| AdmName | 管理员名 | Nvarchar(15) | No | 唯一 |
| AdmPW | 密码 | Nvarchar(15) | no | |
| StaffID | 职工Id | Nvarchar(10) | No | 外键 |
- 超级管理员表 (SuperAdms)
|--------------|------|--------------|----|-------|
| 段 | 说明 | 类型 | 可空 | 备注 |
| SuperAdmID | ID | int | No | 主键,自增 |
| SuperAdmName | 管理员名 | Nvarchar(15) | No | 唯一 |
| SuperAdmPW | 密码 | Nvarchar(15) | no | |
| StaffID | 职工Id | Nvarchar(10) | No | 外键 |
- 用户表 (Users)
|---------|------|--------------|----|-------|
| 字段 | 说明 | 类型 | 可空 | 备注 |
| UserID | ID | int | No | 主键,自增 |
| StaffID | 职工Id | Nvarchar(10) | No | 外键 |
| UserPW | 密码 | Nvarchar(15) | no | |