人力资源数据库设计计划书.docx
- 文档编号:30292789
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:27
- 大小:282.37KB
人力资源数据库设计计划书.docx
《人力资源数据库设计计划书.docx》由会员分享,可在线阅读,更多相关《人力资源数据库设计计划书.docx(27页珍藏版)》请在冰豆网上搜索。
人力资源数据库设计计划书
人事管理系统数据库设计
一,数据库结构图
说明:
由于页面大小的限制,该中文的权限结构图可以在英文结构图中看到。
(图一)中文结构图
(图二)中英文对照结构图
说明:
在中英文对照表中,由于版面原因,users(用户表),module(模块表),modulefunc(模块功能分配表)和func(功能表)未画入。
所以请以中英文结构图为主。
附录一:
module(模块表),modulefunc(模块功能分配表),func(功能表)表图
(图三)中英文结构图补差
二,数据库,表的创建及相关触发器编写代码
(1)创建数据库
createdatabasePMS
on
(
name=PMS_dat,
filename='g:
\PMS_dat.mdf',
size=1,
maxsize=10,
filegrowth=10%
)
logon
(
name=PMS_log,
filename='g:
\PMS_dat.ldf',
size=1,
maxsize=5,
filegrowth=10%
)
go
(2)创建员工表
createtableEmployee
(
Emp_idintidentity,
Emp_namevarchar(10),
Gendervarchar
(2),
Birthvarchar(20),
Folkvarchar(10),
cidbigint,
politicalvarchar(6),
marryvarchar(4),
addressvarchar(20),
specvarchar(20),
schoolvarchar(20),
klevelvarchar(10),
telvarchar(20),
emailvarchar(20),
depnamevarchar(10),
posvarchar(20),
workdatevarchar(20),
cnumvarchar(20),
nativeplacevarchar(10)
)
go
(3)创建培训员工表
createtableEmp_train
(
Emt_idintidentity,
Emp_idint,
Tra_idint,
Empnamevarchar(10)
)
go
--如果输入的id号在Employee表里不存在则不能插入,达到外键约束目的,以次类推!
(4)创建外键约束触发器(培训员工表)
--创建培训员工表
createtriggertrg_fket
onEmp_train
forinsert,update
as
if((selectEmp_idfrominserted)notin(selectEmp_idfromEmployee))or
((selectTra_idfrominserted)notin(selectTra_idfromTrain))
begin
rollbacktran--回滚
raiserror('输入的员工号或培训号不存在',1,1)--报错
end
go
(5)创建培训管理表
createtableTrain
(
Tra_idintidentity,
Titlevarchar(40),
Sta_datevarchar(20),
End_datevarchar(20),
Contvarchar(40),
personvarchar(10),
Memovarchar(100)
)
go
(6)创建部门表
createtableDepartment
(
Dep_idintidentity,
Dnamevarchar(10),
Telvarchar(20),
Headvarchar(10),
Memovarchar(100)
)
go
select*fromdepartment
(7)创建职位表
createtablePosition
(
Pos_idintidentity,
Pnamevarchar(10),
Dep_idint,
)
go
(8)创建外键约束触发器(职位表)
createtriggertrg_fkps
onPosition
forinsert,update
as
if(selectDep_idfrominserted)notin(selectDep_idfromDepartment)
begin
rollbacktran
raiserror('输入的部门号不存在',1,1)
end
go
(9)创建职务调动表
createtablePoschange
(
Pch_idintidentity,
Emp_idintnotnull,
Pch_datevarchar(20),
Dep_preintnotnull,
Dep_sthintnotnull,
Pos_preintnotnull,
Pos_sthintnotnull,
Reasonvarchar(40),
Personint,
Stylevarchar(4)notnull,
Memovarchar(100)
)
go
(10)创建外键约束触发器(职务调动表)
createtriggertrg_fkpc
onPoschange
forinsert,update
as
if((selectEmp_idfrominserted)notin(selectEmp_idfromEmployee))or
((selectDep_prefrominserted)notin(selectDep_idfromdepartment))or
((selectDep_sthfrominserted)notin(selectDep_idfromdepartment))or
((selectPos_prefrominserted)notin(selectPos_idfromPosition))or
((selectPos_sthfrominserted)notin(selectPos_idfromPosition))
begin
rollbacktran--回滚
raiserror('输入的员工号或培训号不存在',1,1)--报错
end
go
(11)创建工资表
createtableSarlary
(
Emp_idint,
Dep_idint,
Basewagemoney,
Poswagemoney,
Bonusmoney,
Trafsubmoney,
Endowinsasbasewage*0.09,
Idleinsmoney,
pertaxmoney,
Spayasbasewage+bonus+trafsub,
Rpayasbasewage+bonus+trafsub-basewage*0.09,
Sdatevarchar(20),
syearvarchar(20)
)
go
(12)创建外键约束触发器(工资表)
createtriggertrg_sarla
onSarlary
forinsert,update
as
if((selectEmp_idfrominserted)notin(selectEmp_idfromEmployee))or
((selectDep_idfrominserted)notin(selectDep_idfromDepartment))
begin
rollbacktran
raiserror('输入的人员号或部门号不存在',1,1)
end
go
(13)创建教育经历表
createtableEndulive
(
Emp_idint,
Collegevarchar(20),
en_timevarchar(30),
klevelvarchar(10),
memovarchar(100)
)
go
(14)创建外键约束触发器(教育经历表)
createtriggertrg_endu
onEndulive
forinsert,update
as
if(selectEmp_idfrominserted)notin(selectEmp_idfromEmployee)
begin
rollbacktran
raiserror('输入的人员号不存在',1,1)
end
go
(15)创建工作经历表
createtableworklive
(
Emp_idint,
Companyvarchar(20),
work_Timevarchar(30),
Positionvarchar(10),
Memovarchar(100)
)
go
(16)创建外键约束触发器(工作经历表)
createtriggertrg_workl
onworklive
forinsert,update
as
if(selectEmp_idfrominserted)notin(selectEmp_idfromEmployee)
begin
rollbacktran
raiserror('输入的人员号不存在',1,1)
end
go
(17)创建用户表
createtableusers
(
Emp_idintnotnull,
usernamevarchar(20),
pwdvarchar(10),
group_idint
)
go
--创建用户表
(18)创建外键约束触发器(用户表)
createtriggertrg_users
onusers
forinsert,update
as
if(selectEmp_idfrominserted)notin(selectEmp_idfromEmployee)
begin
rollbacktran--回滚
raiserror('输入的员工号不存在',1,1)--报错
end
go
(19)创建模块表
createtablemodule
(
module_idintidentity,
module_namevarchar(20),
module_pwdvarchar(20)
)
go
(20)--创建模块功能分配表
createtablemodulefunc
(
module_idintnotnull,
func_idint
)
go
(21)创建功能表
createtablefunc
(
func_idintidentitynotnull,
func_namevarchar(20)
)
go
(说明:
不同的模块中包含不同的功能,不同层次的员工属于不同的模块。
比如,普通员工属于一种模块,该模块中只有浏览功能。
领导类型的员工属于另一种模块,该模块中就有另一部分的功能。
以此类推。
)
三,测试数据输入代码列表
(1)培训管理表数据输入
insertintoTrain(Title,Sta_date,End_date,Cont,Person,Memo)
values('OFFIEC软件','2004-10-18','2004-10-20','各种OFFIEC软件的使用','黄老邪','优秀')
insertintoTrain(Title,Sta_date,End_date,Cont,Person,Memo)
values('OFFIEC软件','2004-10-18','2004-10-20','各种OFFIEC软件的使用','杨过','良')
(2)员工表数据输入
insertintoEmployee(Emp_name,Gender,Birth,Folk,cid,political,marry,address,spec,school,klevel,tel,email,depname,pos,workdate,cnum,nativeplace)
values('小龙女','女','1980-05-30','汉','100000000001','共产党','否','古墓大街1号','会计','古墓大学','本科','11111111','无','市场部','员工','2004-10-18','1001','中原')
insertintoEmployee(Emp_name,Gender,Birth,Folk,cid,political,marry,address,spec,school,klevel,tel,email,depname,pos,workdate,cnum,nativeplace)
values('杨过','男','1982-01-20','汉','200000000002','共产党','否','古墓大街2号','通讯','古墓大学','本科','22222222','无','行政部','主管','2004-08-18','2002','中原')
insertintoEmployee(Emp_name,Gender,Birth,Folk,cid,political,marry,address,spec,school,klevel,tel,email,depname,pos,workdate,cnum,nativeplace)
values('洪七公','男','1680-04-15','汉','300000000003','明主党','是','丐帮广场1号','经济','丐帮学院','研究生','33333333','无','开发部','经理','1993-10-26','3003','中原')
insertintoEmployee(Emp_name,Gender,Birth,Folk,cid,political,marry,address,spec,school,klevel,tel,email,depname,pos,workdate,cnum,nativeplace)
values('黄老邪','男','1698-08-19','汉','400000000004','国民党','是','桃花岛1号','计算机','桃花岛学府','研究生','44444444','无','开发部','副经理','1999-08-26','4004','海外')
insertintoEmployee(Emp_name,Gender,Birth,Folk,cid,political,marry,address,spec,school,klevel,tel,email,depname,pos,workdate,cnum,nativeplace)
values('黄蓉','女','1983-09-11','汉','500000000005','共产党','否','桃花岛2号','人事','桃花岛学府','本科','55555555','无','人事部','主管','2004-07-26','5005','海外')
insertintoEmployee(Emp_name,Gender,Birth,Folk,cid,political,marry,address,spec,school,klevel,tel,email,depname,pos,workdate,cnum,nativeplace)
values('欧阳锋','男','1670-07-25','回','600000000006','国民党','是','西域白鸵山小区1号','经济','西域白鸵山大学','研究生','66666666','无','市场部','经理','1992-03-26','6006','西域')
(3)部门表数据输入
insertintoDepartment(Dname,Tel,Head,Memo)
values('行政部','00000001','杨过','管理公司')
insertintoDepartment(Dname,Tel,Head,Memo)
values('市场部','00000002','欧阳锋','市场管理')
insertintoDepartment(Dname,Tel,Head,Memo)
values('开发部','00000003','洪七公','软件开发')
insertintoDepartment(Dname,Tel,Head,Memo)
values('人事部','00000004','黄蓉','人员调配')
(4)培训员工表数据输入
insertintoEmp_train(Tra_id,Emp_id,Empname)
values('1','1','小龙女')
insertintoEmp_train(Tra_id,Emp_id,Empname)
values('2','2','杨过')
insertintoEmp_train(Tra_id,Emp_id,Empname)
values('3','3','洪七公')
insertintoEmp_train(Tra_id,Emp_id,Empname)
values('4','4','黄老邪')
insertintoEmp_train(Tra_id,Emp_id,Empname)
values('5','5','黄蓉')
insertintoEmp_train(Tra_id,Emp_id,Empname)
values('6','6','欧阳锋')
(5)职位表数据输入
insertintoposition
values('主管','1')
insertintoposition
values('经理','2')
insertintoposition
values('经理','3')
insertintoposition
values('主管','4')
(6)职务调动表数据输入
insertintoPoschange
(Emp_id,Pch_date,Dep_pre,Dep_sth,Pos_pre,Pos_sth,Reason,Person,Style,Memo)
values('6','2004-10-19','2','3','2','2','增强公司管理','5','正常','专业技术能力强')
insertintoPoschange
(Emp_id,Pch_date,Dep_pre,Dep_sth,Pos_pre,Pos_sth,Reason,Person,Style,Memo)
values('3','2004-09-25','3','2','2','2','增强公司管理','5','正常','专业技术能力强')
(7)工资表数据输入
insertintoSarlary(Dep_id,Emp_id,Basewage,Poswage,Bonus,Trafsub,Idleins,pertax,Sdate,Syear)
values('2','1',1500,200,500,100,50,36,'1','2004')
insertintoSarlary(Dep_id,Emp_id,Basewage,Poswage,Bonus,Trafsub,Idleins,pertax,Sdate,Syear)
values('2','1',1500,200,500,100,50,36,'1','2004')
insertintoSarlary(Dep_id,Emp_id,Basewage,Poswage,Bonus,Trafsub,Idleins,pertax,Sdate,Syear)
values('2','1',1500,200,500,100,50,36,'1','2004')
insertintoSarlary(Dep_id,Emp_id,Basewage,Poswage,Bonus,Trafsub,Idleins,pertax,Sdate,Syear)
values('2','1',1500,200,500,100,50,36,'1','2004')
insertintoSarlary(Dep_id,Emp_id,Basewage,Poswage,Bonus,Trafsub,Idleins,pertax,Sdate,Syear)
values('2','1',1500,200,500,100,50,36,'1','2004')
insertintoSarlary(Dep_id,Emp_id,Basewage,Poswage,Bonus,Trafsub,Idleins,pertax,Sdate,Syear)
values('2','1',1500,200,500,100,50,36,'1','2004')
(8)教育经历表数据输入
insertintoEndulive(College,en_time,klevel,memo)
values('古墓大学','1999-09-01到2003-05-18','本科','往届')
insertintoEndulive(College,en_time,klevel,memo)
values('古墓大学','2000-09-01到2004-05-18','本科','应届')
insertintoEndulive(College,en_time,klevel,memo)
values('丐帮学院','1991-09-01到1993-03-26','研究生','专业能力强')
insertintoEndulive(College,en_time,klevel,memo)
values('桃花岛学府','1993-09-01到1995-03-26','研究生','专业能力强')
insertintoEndulive(College,en_time,klevel,memo)
values('桃花岛学府','2000-09-01到2004-05-26','本科','应届')
insertintoEndulive(College,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人力资源 数据库 设计 计划书
![提示](https://static.bdocx.com/images/bang_tan.gif)