您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 人力资源数据库设计计划书
-1-人事管理系统数据库设计-2-一,数据库结构图说明:由于页面大小的限制,该中文的权限结构图可以在英文结构图中看到。(图一)中文结构图员工编号调动时间调前部门编号调后部门编号调前职务编号调后职务编号调动原因经办人调动类型备注职务调动表FkPK调动编号部门编号工资月份基本工资奖金工资交通补贴失业保险养老保险个人所得税应发工资工资管理表Pk员工编号主题开始日期结束日期培训内容培训员工编号备注培训管理表PK培训编号部门名称部门电话部门领导部门职能部门部门号Fk1员工姓名性别出生日期民族婚姻状况政治面貌籍贯身份证号地址学历专业毕业院校联系电话电子邮件部门编号职务号入职时间银行卡号员工档案简表Fk1PK员工编号培训员工表培训员工编号PKFk1Fk2员工编号培训编号培训员工姓名学院时间教育程度备注教育经历表Fk员工编号公司时间职位备注工作经历表Pk员工编号职位表pk职位号职位名称部门号-3-(图二)中英文对照结构图Train培训管理表Tra_idint培训编号pkTitlevarchar(40)主题Sta_datevarchar(20)开始日期End_datevarchar(20)结束日期Contvarchar(40)培训内容Personvarchar(10)培训人姓名Memovarchar(100)备注Department部门表Dep_idint部门号pkDnamevarchar(10)部门名称Telvarchar(20)部门电话Headvarchar(10)部门领导Memovarchar(100)部门职能Emp_train培训员工表Emt_idint培训员工编号pkTra_idint培训编号fkEmp_idint员工编号fkEmpnamevarchar(10)培训员工姓名Employee员工表Emp_idint员工编号pkEmp_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)籍贯Poschange职务调动表Pch_idint调动编号pkEmp_idint员工编号fkPch_datevarchar(20)调动时间Dep_preint调前部门编号fkDep_sthint调后部门编号fkPos_preint调前职务编号fkPos_sthint调后职务编号fkReasonvarchar(40)调动原因Personint经办人号fkStylevarchar(4)调动类型Memovarchar(100)备注Sarlary工资表Sarl_idint工资编号pkDep_idint部门号fkEmp_idint员工编号fkBasewagemoney基本工资Poswagemoney岗位工资Bonusmoney奖金工资Trafsubmoney交通补贴Endowinsmoney养老保险Idleinsmoney失业保险pertaxmoney个人所得税Spaymoney应发工资Rpaymoney实法工资Sdatevarchar(20)工资月份Syearvarchar(20)工资年份Endulive教育经历表Emp_idint员工编号fkCollegevarchar(20)学院timevarchar(40)时间klevelvarchar(10)教育程度memovarchar(100)备注worklive工作经历表Emp_idint员工编号Companyvarchar(20)公司timevarchar(40)时间Positionvarchar(10)职位Memovarchar(100)备注Position职位表Pos_idpk职位号Pname职位名称Dep_idfk部门号-4-说明:在中英文对照表中,由于版面原因,users(用户表),module(模块表),modulefunc(模块功能分配表)和func(功能表)未画入。所以请以中英文结构图为主。附录一:module(模块表),modulefunc(模块功能分配表),func(功能表)表图(图三)中英文结构图补差二,数据库,表的创建及相关触发器编写代码(1)创建数据库createdatabasePMSon(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%)gomodule_idintPKmodule_namevarchar(20)module_pwdvarchar(20)module(模块表)module_idintFKfunc_idintmodulefunc(模块功能分配表)func_idintidentityPKfunc_namefunc(功能表)Emp_idintnotnull,usernamevarchar(20),pwdvarchar(10),module_idintusers(用户表)接员工表中的员工编号-5-(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_fketonEmp_trainforinsert,updateasif((selectEmp_idfrominserted)notin(selectEmp_idfromEmployee))or((selectTra_idfrominserted)notin(selectTra_idfromTrain))begin-6-rollbacktran--回滚raiserror('输入的员工号或培训号不存在',1,1)--报错endgo(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))goselect*fromdepartment(7)创建职位表createtablePosition(Pos_idintidentity,Pnamevarchar(10),Dep_idint,)go(8)创建外键约束触发器(职位表)createtriggertrg_fkpsonPositionforinsert,updateasif(selectDep_idfrominserted)notin(selectDep_idfromDepartment)beginrollbacktran-7-raiserror('输入的部门号不存在',1,1)endgo(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_fkpconPoschangeforinsert,updateasif((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))beginrollbacktran--回滚raiserror('输入的员工号或培训号不存在',1,1)--报错endgo(11)创建工资表createtableSarlary(Emp_idint,Dep_idint,Basewagemoney,Poswagemoney,Bonusmoney,Trafsubmoney,-8-Endowinsasbasewage*0.09,Idleinsmoney,pertaxmoney,Spayasbasewage+bonus+trafsub,Rpayasbasewage+bonus+trafsub-basewage*0.09,Sdatevarchar(20),syearvarchar(20))go(12)创建外键约束触发器(工资表)createtriggertrg_sarlaonSarlaryforinsert,updateasif((selectEmp_idfrominserted)notin(selectEmp_idfromEmployee))or((selectDep_idfrominserted)notin(selectDep_idfromDepartment))beginrollbacktranraiserror('输入的人员号或部门号不存在',1,1)endgo(13)创建教育经历表createtableEndulive(Emp_idint,Collegevarchar(20),en_timevarchar(30),klevelvarchar(10),memovarchar(100))go(14)创建外键约束触发
本文标题:人力资源数据库设计计划书
链接地址:https://www.777doc.com/doc-1000311 .html