人事管理系统功能规范(SQL部分)1 概述1.1目的本文为教学案例项目SQL Server功能规范说明书。
本说明书将:●描述数据库设计的目的●说明数据库设计中的主要组成部分●说明数据库设计中涵盖的教学知识要点1.2内容本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象直接的关系)。
本文档中包含对以下数据库内容的描述:●数据表●视图●存储过程●用户自定义函数●触发器●约束1.3与其他项目的关联教学案例项目的数据库设计与教学项目(Web部分和Windows部分)功能密切相关。
教学案例项目的数据库将按照教学项目程序部分的功能需求而设计,数据库设计将配合教学案例的程序部分,以实现一个功能完备的企业环境内的应用。
2 表2.1表设计概述根据教学案例功能,数据库将以员工信息为中心存储相关数据,配合SQL Server 数据库系统中提供的数据管理,实现员工考勤、请假、加班管理及系统设置等业务功能。
数据库设计将以存储员工信息的员工表为基础,连接多张相关表以实现对以下关系的支持:●员工与请假申请●员工与加班申请●员工与考勤记录●员工与部门●员工与部门经理●员工与业绩评定记录●员工与薪资此外数据库中还将记录教学案例应用中需要的全局配置信息和事件日志记录。
数据库系统主要的实体关系如图2-1所示。
2.2员工表概述员工表用于记录员工基本信息,并作为基础表与其他表连接。
该表通过DeptID和Title可以确定员工部门和职位信息。
当Title的值为“经理”时可以确定此员工为该部门的部门经理。
表定义员工表定义如表2-1所示。
表2-1主键员工表的主键是员工编号字段,类型为整型,设置自动增量。
员工表的外键有部门编号,类型为整型,用于与部门表中的部门编号字段关联。
部门编号字段不可以为空。
员工表的外键有员工级别,类型为整型,用于与员工级别表中的员工级别字段关联。
约束员工表中的员工登录名字段建议为4-6位小写英文字符,且不能与员工姓名相同,也不可为空字符串。
索引主键字段员工编号具有自动创建的聚集索引。
2.3部门表概述部门表用于记录企业内部的部门信息。
每个独立的部门在该表中都对应一条记录。
该表通过与员工表关联可以确定员工所属的部门。
表定义部门表定义如表2-2所示。
表2-2主键部门表的主键是部门编号字段,类型为整型,设置自动增量。
部门表的外键为部门经理编号,类型为整型,用于与员工表的员工编号相关联。
约束无其他约束。
索引主键字段部门编号具有自动创建的聚集索引。
2.4员工薪资表概述员工薪资表用于记录员工每月的薪资信息,包括薪资发放日期、薪资组成等。
员工薪资表通过字段员工编号与员工表关联。
表定义员工薪资表定义如表2-3所示。
表2-3主键员工薪资表的主键是薪资编号字段,类型为整型,设置自动增量。
员工薪资表的外键是员工编号,类型为整型,用于与员工表中的员工编号字段关联。
约束无其他约束。
索引主键字段薪资编号具有自动创建的聚集索引。
2.5员工考勤表概述员工考勤表用于记录员工的考勤信息(上下班时间、记录者信息等),通过字段员工编号与员工表关联。
表定义员工考勤表定义如表2-4所示。
表2-4员工考勤表的主键是考勤编号字段,类型为整型,设置自动增量。
外键员工考勤表的外键是员工编号和记录者编号,其中员工编号类型为整型,用于与员工表中的员工编号字段关联;记录者编号类型为整型,用于与员工表中的员工编号字段关联。
约束员工考勤表中的记录者编号不可与员工编号相同;员工考勤表中的考勤类型字段只能取“缺勤”、“迟到”、“早退”。
索引主键字段考勤编号具有自动创建的聚集索引。
2.6员工请假表概述员工请假表用于记录员工的请假记录。
员工请假表中的基本信息包括:请假提交时间、请假开始时间、请假终止时间、请假原因、请假的类别和请假申请状态等。
通过字段,员工编号与员工表关联。
表定义员工请假表定义如表2-5所示。
表2-5主键员工请假表的主键是请假申请编号字段,类型为整型,设置自动增量。
外键员工请假表的外键是员工编号和审核者编号,其中员工编号类型为整型,用于与员工表中的员工编号字段关联;审核者编号类型为整型,用于与员工表中的员工编号字段关联。
约束请假开始时间应小于请假结束时间;申请状态字段的取值可以是:“已提交”、“已取消”、“已批准”、“已否决”。
索引主键字段请假申请编号具有自动创建的聚集索引。
2.7员工加班表概述员工加班表用于记录员工的加班记录。
员工加班表中的基本信息包括:加班时间、加班起止时间、加班原因和加班申请批准状态。
通过字段,员工编号与员工表关联。
表定义员工加班表定义如表2-6所示。
表2-6主键员工加班表的主键是加班申请编号字段,类型为整型,不设置自动增量。
外键员工加班表的外键是员工编号,类型为整型,用于与员工表中的员工编号字段关联。
员工加班表的外键是加班类型,类型为整型,用来与加班类型表的加班类型相关联。
约束加班开始时间应小于加班结束时间;申请状态字段取值:“已批准”、“待批准”、“被拒绝”。
主键字段加班申请编号具有自动创建的聚集索引。
2.8员工业绩评定表概述员工业绩评定表用于保存员工的绩效信息。
员工业绩评定表中的基本信息包括:员工编号、考评者编号、提交时间、考评时间、评语和绩效状态。
通过字段员工编号与员工表关联。
表定义员工业绩评定表定义如表2-7所示。
表2-7主键员工业绩评定表的主键是业绩评定编号字段,类型为整型,设置自动增量。
员工业绩评定表的外键是员工编号,类型为整型,用于与员工表中的员工编号字段关联。
员工业绩评定表的外键是状态,类型为整型,用于与业绩评定状态表中的业绩评定类型字段关联。
约束无索引主键字段业绩评定编号具有自动创建的聚集索引。
2.9业绩评定状态表概述业绩评定状态表用于保存业绩评定可能有的状态名称。
业绩评定状态表的基本信息包括:业绩评定类型和业绩评定名称。
表定义业绩评定状态表定义如表2-10所示。
表2-10主键无。
无。
约束状态字段的取值可以为:“0”或“1”。
对应的绩效考核名称分别为“不合格”、“合格”索引无。
2.10加班类型表概述加班类型表用于记录加班类型。
加班类型表的基本信息包括:加班类型和加班描述。
表定义加班类型表定义如表2-11所示。
表2-11主键加班类型外键无加班类型表的加班类型的名称描述字段,只能取“折算成年假”或“折算成津贴”。
索引无。
2.11假期表概述假期表用于记录假期信息。
假期表的基本信息包括:假期编号、假期名称、假期具体时间和是否为国定假期。
表定义假期表定义如表2-12所示。
表2-12主键假期表的主键是假期编号字段,类型是整型,设置自动增量。
外键无。
无。
索引无。
2.12业绩评定子项目表概述业绩评定子项目表用于记录业绩评定子项目信息。
业绩评定子项目表包含的主要内容有:业绩评定编号、业绩评定子项目编号、项目内容、自我评分和审核者评分。
表定义业绩评定子项目表定义如表2-13所示。
表2-13主键业绩评定子项目编号。
外键业绩评定子项目表的外键有业绩评定编号,用来与员工业绩评定表的业绩评定编号相关联。
无其他约束。
索引无。
2.13员工级别表概述员工级别表用于记录员工级别信息,包括员工级别和描述。
表定义业绩评定子项目表定义如表2-13所示。
表2-14主键员工级别编号。
外键无。
约束无其他约束。
无。
3 视图3.1查看部门信息(Web)概述●通过访问此视图可以达到与直接访问部门表相同的效果。
基表●部门表视图包含字段●部门编号●部门名称●部门描述●部门经理编号3.2查看员工基本信息(Web)概述●此视图通过左外连接员工和部门表得到了员工的详细信息,其中包括员工的基本信息、员工的部门信息和员工经理信息。
基表●员工表●部门表视图包含字段●员工编号●员工姓名●员工电子邮件●员工电话●员工登录名●员工报到日期●员工所属部门编号●员工自我介绍●员工照片●员工剩余假期●所属部门名称3.3查看员工考勤情况(Web)概述●此视图通过员工编号内连接员工考勤表和员工表,得到员工的姓名、员工所属部门编号和考勤情况。
通过这个视图可以按部门编号查到整个部门员工的缺勤情况。
基表●员工考勤表●员工表视图包含字段●考勤编号●员工编号●部门编号●员工姓名●考勤类型●到达时间●日期3.4查看员工请假申请信息(Web)概述●此视图通过内联接员工请假表和员工表,得到员工的请假申请信息和请假批准人姓名。
基表●员工请假表●员工表视图包含字段●请假申请编号●员工编号●提交时间●开始时间●结束时间●理由说明●小时数●申请状态●审核者编号●拒绝申请的理由●审核者姓名3.5查看员工加班申请信息(Web)概述●此视图通过内连接员工加班表、员工表和加班类型表,得到员工加班表中的加班申请信息和加班申请批准人姓名及加班折算成假期类型的名称。
基表●员工加班表●员工表●加班类型表视图包含字段●加班申请编号●员工编号●提交时间●开始时间●结束时间●加班类型●加班理由●小时数●申请状态●审核者编号●拒绝申请的理由●审核者姓名●加班类型的名称描述3.6查看部门经理信息(Web)概述●此视图通过内联接部门表和员工表,得到经理的所有基本信息。
基表●部门表●员工表视图包含的字段●部门经理姓名●部门经理电子邮件●部门名称●部门经理编号●部门编号4 存储过程4.1插入一条提交的请假申请(Web)概述●此存储过程向员工请假表插入一条已提交的请假申请。
参数返回值4.2取消一条请假申请(Web)概述●此存储过程用来取消员工请假表中的一条请假申请。
参数返回值4.3更新一条请假申请记录的状态(Web)概述●此存储过程更新员工请假表中的一条请假申请记录的状态,并输入更新的理由。
参数返回值4.4汇总部门员工考勤信息(Web)概述●通过此存储过程,可以按指定部门编号和指定的时间段汇总本部门的员工考勤信息。
参数返回值4.5汇总部门员工薪资信息(Web)概述●通过此存储过程可以按部门得到指定时间段内的员工薪资汇总信息。
参数返回值4.6根据员工登录名获取员工编号(Web)概述●此存储过程根据员工登录名得到员工编号。
返回值4.7根据员工编号更新员工登录密码(Web)概述●此存储过程根据员工编号更新员工表中的员工登录密码。
参数返回值4.8添加一个新部门(Win)概述●此存储过程向部门表添加一条新部门信息的记录。
返回值4.9删除一个指定部门(Win)概述●此存储过程从部门表中删除一个指定的部门,在删除前先判断该部门是否还有员工,如有员工则不删除该部门并返回,如无任何员工,则删除该部门。
参数返回值4.10获取所有部门的部门编号和部门名称(Win)概述●此存储过程从部门表中得到所有部门的部门编号和部门名称。
返回值5 用户自定义函数5.1按部门名称得到本部门所有的员工信息概述此用户自定义函数根据部门名称得到本部门所有员工的信息(可以通过视图得到)。