人事管理系统项目详细设计说明书.docx
- 文档编号:29499905
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:211
- 大小:50.65KB
人事管理系统项目详细设计说明书.docx
《人事管理系统项目详细设计说明书.docx》由会员分享,可在线阅读,更多相关《人事管理系统项目详细设计说明书.docx(211页珍藏版)》请在冰豆网上搜索。
人事管理系统项目详细设计说明书
1.概述
1.1.目的
本文为教学案例项目SQLServer功能规范说明书。
本说明书将:
描述数据库设计的目的
说明数据库设计中的主要组成部分
说明数据库设计中涵盖的教学知识要点
1.2.内容
本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象的直接关系)。
本文档中包含对以下数据库内容的描述:
数据表
视图
存储过程
用户自定义函数
触发器
约束
在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考。
1.3.与其他项目的关联
教学案例项目的数据库设计与教学项目(Web部分和Windows部分)功能密切相关。
教学案例项目的数据库将按照教学项目程序部分的功能需求而设计,数据库设计将配合教学案例的程序部分,以实现一个功能完备的企业环境内的应用。
提示可通过使用Web应用程序或Windows应用程序来测试数据库。
2.数据库
2.1.数据库名称
数据库的名称一定要设为RGB,否则本案例设计的Web部分的应用程序和Windows部分的应用程序将无法使用该数据库。
答案:
USE[master]
GO
/******Object:
Database[RGB]ScriptDate:
06/18/201108:
55:
58******/
CREATEDATABASE[RGB]ONPRIMARY
(NAME=N'RGB',FILENAME=N'C:
\ProgramFiles\MicrosoftSQLServer\\MSSQL\DATA\',SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)
LOGON
(NAME=N'RGB_log',FILENAME=N'C:
\ProgramFiles\MicrosoftSQLServer\\MSSQL\DATA\',SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)
GO
ALTERDATABASE[RGB]SETCOMPATIBILITY_LEVEL=100
GO
IF(1=FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC[RGB].[dbo].[sp_fulltext_database]@action='enable'
end
GO
ALTERDATABASE[RGB]SETANSI_NULL_DEFAULTOFF
GO
ALTERDATABASE[RGB]SETANSI_NULLSOFF
GO
ALTERDATABASE[RGB]SETANSI_PADDINGOFF
GO
ALTERDATABASE[RGB]SETANSI_WARNINGSOFF
GO
ALTERDATABASE[RGB]SETARITHABORTOFF
GO
ALTERDATABASE[RGB]SETAUTO_CLOSEOFF
GO
ALTERDATABASE[RGB]SETAUTO_CREATE_STATISTICSON
GO
ALTERDATABASE[RGB]SETAUTO_SHRINKOFF
GO
ALTERDATABASE[RGB]SETAUTO_UPDATE_STATISTICSON
GO
ALTERDATABASE[RGB]SETCURSOR_CLOSE_ON_COMMITOFF
GO
ALTERDATABASE[RGB]SETCURSOR_DEFAULTGLOBAL
GO
ALTERDATABASE[RGB]SETCONCAT_NULL_YIELDS_NULLOFF
GO
ALTERDATABASE[RGB]SETNUMERIC_ROUNDABORTOFF
GO
ALTERDATABASE[RGB]SETQUOTED_IDENTIFIEROFF
GO
ALTERDATABASE[RGB]SETRECURSIVE_TRIGGERSOFF
GO
ALTERDATABASE[RGB]SETDISABLE_BROKER
GO
ALTERDATABASE[RGB]SETAUTO_UPDATE_STATISTICS_ASYNCOFF
GO
ALTERDATABASE[RGB]SETDATE_CORRELATION_OPTIMIZATIONOFF
GO
ALTERDATABASE[RGB]SETTRUSTWORTHYOFF
GO
ALTERDATABASE[RGB]SETALLOW_SNAPSHOT_ISOLATIONOFF
GO
ALTERDATABASE[RGB]SETPARAMETERIZATIONSIMPLE
GO
ALTERDATABASE[RGB]SETREAD_COMMITTED_SNAPSHOTOFF
GO
ALTERDATABASE[RGB]SETHONOR_BROKER_PRIORITYOFF
GO
ALTERDATABASE[RGB]SETREAD_WRITE
GO
ALTERDATABASE[RGB]SETRECOVERYFULL
GO
ALTERDATABASE[RGB]SETMULTI_USER
GO
ALTERDATABASE[RGB]SETPAGE_VERIFYCHECKSUM
GO
ALTERDATABASE[RGB]SETDB_CHAININGOFF
GO
2.2.用户
除了数据库中自动创建的dbo用户之外,还要创建如下两个用户:
RGBWinUser:
该用户是Windows应用程序访问数据库所使用的账号,它的权限一般仅限于查看视图和执行存储过程。
RGBASPUser:
该用户是Web应用程序访问数据库所使用的账号,它的权限和RGBWinUser用户类似,即仅限于查看视图和执行存储过程。
答案:
[RGB]
GO
/******Object:
User[RGBWinUser]ScriptDate:
06/18/201108:
29:
15******/
GO
CREATEUSER[RGBWinUser]FORLOGIN[WO]WITHDEFAULT_SCHEMA=[dbo]
GO
[RGB]
GO
/******Object:
User[RGBASPUser]ScriptDate:
06/18/201108:
30:
46******/
GO
CREATEUSER[RGBASPUser]FORLOGIN[ni]WITHDEFAULT_SCHEMA=[dbo]
GO
3.表
3.1.表设计概述
根据教学案例功能,数据库将以员工信息为中心存储相关数据,配合SQLServer数据库系统中提供的数据管理,实现员工考勤、请假、加班管理及系统设置等业务功能。
数据库设计将以存储员工信息的员工表为基础,连接多张相关表实现对以下关系的支持:
员工与请假申请
员工与加班申请
员工与考勤记录
员工与部门
员工与部门经理
员工与绩效考核记录
员工与工资
此外数据库中还将记录教学案例应用中需要的全局配置信息和事件日志记录。
数据库系统主要的实体关系如下图:
(部门表中去掉部门经理编号,在数据删除时可能会出现死锁)
3.2.表tblEmployee
概述
表tblEmployee用于记录员工基本信息,并作为基础表与其他表联接。
该表通过DeptID和Title可以确定员工部门和职位信息。
当Title的值为“经理”时可以确定此员工为该部门的部门经理。
答案:
USE[RGB]
GO
/******Object:
Table[dbo].[tblEmployee]ScriptDate:
06/20/201117:
13:
37******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[tblEmployee](
[EmployeeID][int]NOTNULL,
[Name][nvarchar](50)NOTNULL,
[LoginName][nvarchar](20)NOTNULL,
[Password][binary](20)NULL,
[Email][nvarchar](50)NOTNULL,
[DeptID][int]NULL,
[BasicSalary][int]NULL,
[Title][nvarchar](50)NULL,
[Telephone][nvarchar](50)NULL,
[OnhoardDate][datetime]NOTNULL,
[Selfintro][nvarchar](200)NULL,
[VacationRemain][int]NULL,
[EmployeeLevel][int]NULL,
[PhotoImage][image]NULL,
CONSTRAINT[PK_tblEmployee]PRIMARYKEYCLUSTERED
(
[EmployeeID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
ALTERTABLE[dbo].[tblEmployee]WITHCHECKADDCONSTRAINT[FK_tblEmployee_tblDepartment]FOREIGNKEY([DeptID])
REFERENCES[dbo].[tblDepartment]([DeptID])
GO
ALTERTABLE[dbo].[tblEmployee]CHECKCONSTRAINT[FK_tblEmployee_tblDepartment]
GO
ALTERTABLE[dbo].[tblEmployee]WITHCHECKADDCONSTRAINT[FK_tblEmployee_tblEmployeeLevel]FOREIGNKEY([EmployeeLevel])
REFERENCES[dbo].[tblEmployeeLevel]([EmployeeLevel])
GO
ALTERTABLE[dbo].[tblEmployee]CHECKCONSTRAINT[FK_tblEmployee_tblEmployeeLevel]
GO
表定义
表tblEmployee定义如下:
名称
类型
可否为空
说明
备注
EmployeeID
int4
否
员工编号
自动生成
Name
nvarchar50
否
员工姓名
LoginName
nvarchar20
否
员工登录名
建议为英文字符,且与姓名不同
Password
binary20
可
员工登录密码
nvarchar50
否
员工电子邮件
DeptID
int4
可
员工所属部门编号
BasicSalary
int4
可
员工基本工资
Title
nvarchar50
可
员工职位名称
可取值为“普通员工”、“部门经理”、“总裁”
Telephone
nvarchar50
可
员工电话
OnboardDate
datetime8
否
员工报到日期
SelfIntro
nvarchar200
可
员工自我介绍
初始为空,由员工自行输入
VacationRemain
int4
可
员工剩余假期
小时数
EmployeeLevel
int4
可
员工的级别
PhotoImage
image16
可
员工照片
主键
表tblEmployee的主键是EmployeeID字段,类型为int,设置自动增量。
答案:
USE[RGB]
GO
/******Object:
Index[PK_tblEmployee]ScriptDate:
06/18/201109:
00:
53******/
ALTERTABLE[dbo].[tblEmployee]ADDCONSTRAINT[PK_tblEmployee]PRIMARYKEYCLUSTERED
(
[EmployeeID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,SORT_IN_TEMPDB=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
GO
外键
表tblEmployee的外键有DeptID,类型为int,用于与表tblDepartment中的DeptID字段关联。
DeptID字段可以为空,在此情况下表示员工不在任何部门中。
表tblEmployee的外键有EmployeeLevel,类型为int,用于与表tblEmployeeLevel中的EmployeeLevel字段关联。
[RGB]
GO
ALTERTABLE[dbo].[tblEmployee]WITHCHECKADDCONSTRAINT[FK_tblEmployee_tblDepartment]FOREIGNKEY([DeptID])
REFERENCES[dbo].[tblDepartment]([DeptID])
GO
ALTERTABLE[dbo].[tblEmployee]CHECKCONSTRAINT[FK_tblEmployee_tblDepartment]
GO
[RGB]
GO
ALTERTABLE[dbo].[tblEmployee]WITHCHECKADDCONSTRAINT[FK_tblEmployee_tblEmployeeLevel]FOREIGNKEY([EmployeeLevel])
REFERENCES[dbo].[tblEmployeeLevel]([EmployeeLevel])
GO
ALTERTABLE[dbo].[tblEmployee]CHECKCONSTRAINT[FK_tblEmployee_tblEmployeeLevel]
GO
约束
表tblEmployee中的LoginName字段建议为4-8位小写英文字符,且不能与员工姓名相同也不可以为空字符串。
索引
主键字段EmployeeID具有自动创建的聚集索引。
3.3.表tblDepartment
概述
表tblDepartment用于记录企业内部的部门信息。
每个独立的部门在该表中都对应一条记录。
该表通过与tblEmployee表关联可以确定员工所属的部门。
答案:
USE[RGB]
GO
/******Object:
Table[dbo].[tblDepartment]ScriptDate:
06/20/201117:
13:
12******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[tblDepartment](
[DeptID][int]NOTNULL,
[DeptName][char](10)NULL,
[Description][char](50)NULL,
CONSTRAINT[PK_tblDepartment]PRIMARYKEYCLUSTERED
(
[DeptID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
表定义
表tblDepartment定义如下:
名称
类型
可否为空
说明
备注
DeptID
int4
否
部门编号
自动生成
DeptName
char10
可
部门名称
Desciption
char50
可
部门描述
主键
表tblDepartment的主键是DeptID字段,类型为int,设置自动增量。
答案:
USE[RGB]
GO
/******Object:
Index[PK_tblDepartment]ScriptDate:
06/18/201109:
03:
12******/
ALTERTABLE[dbo].[tblDepartment]ADDCONSTRAINT[PK_tblDepartment]PRIMARYKEYCLUSTERED
(
[DeptID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,SORT_IN_TEMPDB=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
GO
外键
无
约束
无其他约束
索引
主键字段DeptID具有自动创建的聚集索引。
3.4.表tblSalary
概述
表tblSalary用于记录员工每月的工资信息,包括工资发放日期、工资组成等。
表tblSalary通过字段EmployeeID与表tblEmployee关联。
答案:
USE[RGB]
GO
/******Object:
Table[dbo].[tblSalary]ScriptDate:
06/20/201117:
12:
47******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATETABLE[dbo].[tblSalary](
[SalaryID][int]NOTNULL,
[EmployeeID][int]NOTNULL,
[SalaryTime][datetime]NOTNULL,
[BasicLSalary][int]NULL,
[OvertimeSalary][int]NULL,
[AbsenseSalary][int]NULL,
[OtherSalary][int]NULL,
CONSTRAINT[PK_tblSalary]PRIMARYKEYCLUSTERED
(
[SalaryID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[tblSalary]WITHCHECKADDCONSTRAINT[FK_tblSalary_tblEmployee]FOREIGNKEY([EmployeeID])
REFERENCES[dbo].[tblEmployee]([EmployeeID])
GO
ALTERTABLE[dbo].[tblSalary]CHECKCONSTRAINT[FK_tblSalary_tblEmployee]
GO
表定义
表tblSalary定义如下:
名称
类型
可否为空
说明
备注
SalaryID
int4
否
工资编号
EmployeeID
int4
否
员工编号
SalaryTime
datetime8
否
工资发放时间
BasicSalary
int4
可
员工基本工资
OvertimeSalary
int4
可
加班工资
AbsenseSalary
int4
可
缺勤扣除
OtherSalary
int4
可
其他工资
主键
表tblSalary的主键是SalaryID字段,类型为int,设置自动增量。
答案:
USE[RGB]
GO
/******Object:
Index[PK_tblSalary]ScriptDate:
06/18/201109:
03:
47******/
ALTERTABLE[dbo].[tblSalary]ADDCONSTRAINT[PK_tblSalary]PRIMARYKEYCLUSTERED
(
[SalaryID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,SORT_IN_TEMPDB=OFF,IGNORE_DUP_KEY=OFF,ONLINE=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
GO
外键
表tblSalary的外键是EmployeeID,类型为int,用于与表tblEmployee中的EmployeeID字段关联。
答案:
USE[RGB]
GO
ALTERTABLE[dbo].[tblSalary]WITHCHECKADDCONSTRAINT[FK_tblSalary_tblEmployee]FOREIGNKEY([EmployeeID])
REFERENCES[dbo].[tblEmployee]([EmployeeID])
GO
ALTERTABLE[dbo].[tblSalary]CHECKCONSTRAINT[FK_tblSalary_tblEmployee]
GO
约束
无其他约束
索引
主键字段SalaryID具有自动创建的聚集索引。
3.5.表tblAttendance
概述
表tblAttendance用于记录员工的考勤信息(上下班时间、记录者信息等),通过字段EmployeeID与表tblEmployee关联。
答案:
USE[RGB]
GO
/******Object:
Table[dbo].[tblAttendance]ScriptDate:
06/20/201117:
11:
44******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATETABLE[dbo].[tblAttendance](
[AttendID][int]NOTNULL,
[EmployeeID][int]NOTNULL,
[BreachTime][datetime]NULL,
[RecorderID][int]NULL,
[Type][nchar](4)NOTNULL,
[AskReview][tinyint]NULL,
[Date][datetime]NOTNULL,
CONSTRAINT[PK_tblAttendance]PRIMARYKEYCLUSTE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事管理系统 项目 详细 设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)