数据库课程设计9210090514袁博.docx
- 文档编号:9440706
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:17
- 大小:108.11KB
数据库课程设计9210090514袁博.docx
《数据库课程设计9210090514袁博.docx》由会员分享,可在线阅读,更多相关《数据库课程设计9210090514袁博.docx(17页珍藏版)》请在冰点文库上搜索。
数据库课程设计9210090514袁博
SQLServer数据库
——课程作业
作业题目:
求职招聘管理信息系统
院(系):
信息技术系
班级:
网络工程本科1班
学号:
9210090514
学生姓名:
袁博
一、数据需求分析:
根据调查以往企业招聘都是由应聘人员将自己的简历以及求职信等资料寄望应聘单位或由求职者本人亲自将其送往应聘企业的人事部门,在这过程中不论是企业还是应聘者本人都投入了大量的时间和精力,造成了严重的资源浪费且效率低下同时也造成了大量资源的闲置现象。
本系统的建设有利于解决这些问题并提高双方的工作效率。
招聘管理信息系统的开发目的,就是通过系统的开发,实现企业招聘工作的,提高业务的计算机化,提高业务的处理速度和规范化程度,并对整个人力资源管理工作进行重组,进一步通过计算机网络提升整个企业的管理信息化水平。
1.从信息需求的角度分析
信息注册主要包括求职者全部个人信息的采集和公司现有信息情况的采集。
信息交互即求职信息管理,主要包括求职者向公司投递简历过程的记录和公司对求职者反馈信息管理和笔试、面试的管理。
新闻信息。
2.从用户的角度分析
求职者要注册个人信息,并记录简历的投递信息。
公司要注册其详细信息,并记录对求职者的笔试、面试的管理。
网站管理员进行个人用户和企业用户的管理。
2.2.1业务流程分析
业务流程是一个由各种不同功能的活动相连的一组有相互关系的任务,它们依照一定的业务逻辑和顺序依次执行,是一种描述系统内各单位、人员之间的业务关系、作业顺序和管理信息流方法。
根据本系统的设计需求,首先系统要有两个登录界面,个人用户和公司用户通过不同的界面进入系统,提高系统的安全性。
当求职者的功能包括:
用户基本信息管理,笔试管理,职位信息管理。
求职招聘业务流程描述如下:
1.用户基本信息管理:
求职者不仅可以查看自己简历的基本信息,还可以对其更新。
2.笔试管理:
可以查看公司发送来的笔试邀请。
3.面试管理:
可以浏览到公司的面试成绩,如果被录用这会有提示信息。
4.职位信息管理:
求职者可以检索到公司中的公司信息,公司中职位的详细信息,根据职位信息情况可以申请具体职位。
本系统的求职招聘业务流程图如图2-1所示。
图2-1求职招聘业务流程图
企业人员经过不同的分工,能够实现的操作有以下几个部分:
包括企业信息管理,笔试管理,面试管理,职位管理,求职者管理。
1.企业信息管理:
公司可以管理公司的基本信息,对一些变化的信息进行及时的更新。
2.笔试管理:
参加笔试完之后,公司需要把笔试成绩录入到系统中,还可以对成绩进行更新,公司对成绩满意之后可以向用户发送面试请求。
3.职位管理:
公司对新职位的发布,对职位信息的实时更新,已经不需要的或是已招满的职位实施删除。
4.求职者管理:
公司可以对所有的求职者遍历,找到满意的人可以允许其参加相应职位的笔试考核,还可以对已申请职位的人员进行整体查看,对满意的求职者发送笔试邀请信息。
2.2.2数据流图
数据流图(DFD:
DataFlowDiagram)就是组织中信息运动的抽象,是信息逻辑系统模型的主要形式。
数据流图由数据流、加工、数据存储和数据源点构成。
1.数据流是数据在系统内传播的路径,因此由一组固定的数据组成。
由于数据流是流动中的数据,所以必须有流向。
2.加工(又称为数据处理),对数据流进行某些操作或变换。
3.数据存储(又称为文件),指暂时保存的数据。
图2-2为系统前台数据流图。
图2-2 系统前台数据流图
图2-3为系统后台数据流图。
二、数据库概念设计(E-R图设计):
三、数据库逻辑结构设计:
这个是我的数据库部分表结构:
数据库采用SQLSERVER2005数据库实现,数据库名为zhaopin,共包括6个数据表,具体描述如下:
表名:
Users数据来源:
简历基本信息表结构如表3-3所示
表3-3Users(个人简历表)
字段名
数据类型
长度
备注
描述
personId
INT
4
PrimaryKey
用户id
personUsername
VARCHAR
100
Notnull
用户名
personPassword
VARCHAR
100
Notnull
密码
realName
VARCHAR
100
Notnull
真实姓名
personSex
CHAR
2
Notnull
性别
personBirsday
CHAR
11
Notnull
出生日期
personContry
VARCHAR
50
Notnull
国家地区
personHukou
VARCHAR
4
户口类型
personHenfenzheng
VARCHAR
20
Notnull
身份证号
juzhudi
VARCHAR
100
籍贯
VARCHAR
50
Notnull
phone
VARCHAR
50
联系电话
place
VARCHAR
100
联系地址
youbian
INT
6
Notnull
邮政编码
monny
VARCHAR
10
币种
dengluriqi
CHAR
11
Notnull
登录日期
jianglitime
CHAR
11
奖励时间
jiangxiang
VARCHAR
50
奖项
jibie
VARCHAR
10
级别
muqianyuexin
VARCHAR
10
Notnull
目前月薪
waiyuyuzhong
VARCHAR
10
外语语种
zhangwochengdu
VARCHAR
10
掌握程度
shijianstarttime
CHAR
11
实践开始时间
shijianendtime
CHAR
11
实践结束时间
shijianmingcheng
VARCHAR
50
实践名称
shijianmiaoshu
VARCHAR
8000
实践描述
starttime
CHAR
11
Notnull
开始日期
endtime
CHAR
11
Notnull
结束日期
school
VARCHAR
50
Notnull
毕业学校
zhuanye
VARCHAR
50
Notnull
专业
zhuanyemiaoshu
VARCHAR
8000
专业描述
zhiwustarttime
CHAR
11
职务开始时间
zhiwuendtime
CHAR
11
职务结束时间
zhiwumingcheng
VARCHAR
50
职务名称
zhiwumiaoshu
VARCHAR
8000
职务描述
表名:
QiuzhiPosition数据来源:
求职意向表表结构如表3-4所示
表3-4 QiuzhiPosition(求职意向表)
字段名
数据类型
长度
备注
字段描述
positionId
INT
4
PrimaryKey
id
gongzuoleixing
VARCHAR
50
Notnull
工作类型
gongzuojingyan
VARCHAR
50
Notnull
工作经验
gongzuodidian
VARCHAR
50
Notnull
工作地点
hangye
VARCHAR
50
Notnull
行业
zhineng
VARCHAR
50
Notnull
职能
qiwanggongzhi
VARCHAR
50
Notnull
期望工资
zhiwopingjia
VARCHAR
8000
自我评价
xueli
VARCHAR
10
Notnull
学历
personId
INT
4
ForeignKey
简历用户id
表名:
Company数据来源:
公司信息表结构如表3-5所示。
表3-5 Company(公司表)
字段名
数据类型
长度
备注
描述
CompanyId
INT
4
PrimaryKey
公司id
username
VARCHAR
50
Notnull
用户名称
password
VARCHAR
50
Notnull
公司密码
companyname
VARCHAR
50
Notnull
公司名称
companyxingzhi
VARCHAR
20
Notnull
公司性质
CompanyHangye
VARCHAR
50
Notnull
公司行业
CompanyGuimo
VARCHAR
20
Notnull
公司规模
CompanyEmail
VARCHAR
30
Notnull
电子邮件
compnywangzan
VARCHAR
100
公司网站
place
VARCHAR
50
工作地点
youbian
INT
6
邮编
chuanzhen
VARCHAR
20
传真
lianxiren
VARCHAR
20
联系人
dengluriqi
VARCHAR
11
Notnull
登录日期
CompanyJianjie
VARCHAR
8000
公司简介
表名:
Position数据来源:
职位信息表结构如表3-6所示。
表3-6Position(职位表)
字段名
数据类型
长度
非空
描述
PositionId
INT
4
PrimaryKey
职位id
PositionName
VARCHAR
50
Notnull
职位名称
positionhangye
VARCHAR
50
Notnull
职位行业
PositionStartdate
VARCHAR
11
Notnull
发布日期
PositionEnddate
VARCHAR
11
Notnull
截止日期
workplace
VARCHAR
100
Notnull
工作地点
zhaopinrenshu
VARCHAR
50
Notnull
招聘人数
gongzuonianxian
VARCHAR
10
Notnull
工作经验
gongzidaiyu
VARCHAR
10
Notnull
工资待遇
xueli
VARCHAR
10
Notnull
学历要求
gongzuoleixing
VARCHAR
10
Notnull
工作类型
positionmianshu
VARCHAR
8000
职位描述
bishitime
VARCHAR
11
笔试时间
bishiplace
VARCHAR
50
笔试地点
mianshitime
VARCHAR
11
面试时间
mianshiplace
VARCHAR
100
面试地点
CompanyId
INT
4
ForeignKey
公司id
表名:
Admin数据来源:
管理员信息表结构如表3-7所示。
表3-7Admin(管理员表)
标识符
数据类型
长度
非空
描述
id
INT
4
PrimaryKey
管理员id
Adminname
VARCHAR
20
管理员名称
password
VARCHAR
20
管理员密码
personUsername
VARCHAR
50
会员名称
compnyUsename
VARCHAR
50
公司名称
question
VARCHAR
100
问题
answer
VARCHAR
100
答案
表名:
UserShenQing数据来源:
职位申请信息表结构如表3-8所示
表3-8UserShenQing(职位申请表)
字段名
数据类型
长度
备注
字段描述
id
INT
4
PrimaryKey
Id
personId
INT
4
ForeignKey
用户简历id
companyId
INT
4
ForeignKey
公司id
positionId
INT
4
ForeignKey
职位id
datetime
VARCHAR
11
Notnull
申请日期
chakan
INT
1
是否查看
bishi
INT
1
是否笔试
bishi_score
INT
20
笔试分数
mianshi
INT
1
是否面试
mianshi_score
INT
20
面试分数
luyong
INT
1
是否录用
四、数据库详细设计
1、索引设计
索引是SQLSERVER中的一种数据库对象,在数据库大量数据中,为了迅速查找你需要的数据,或者为了排序的需要,首先我们知道索引是针对表而设计的。
设计如下:
1对于表Users中personId字段进行升序唯一的聚集索引
2对于表QiuzhiPosition中positionId字段进行升序唯一的聚集索引
3对于表Company中CompanyId字段进行升序唯一的聚集索引
4对于表Position中PositionId字段进行升序唯一的聚集索引
5对于表Admin中id字段进行升序唯一的聚集索引
6对于表UserShenQing中id字段进行升序唯一的聚集索引
2、存储过程设计
1BasicInfo:
setANSI_NULLSON
setQUOTED_IDENTIFIERON
go
ALTERProcedure[dbo].[Com_BasicInfo]
@Comidnvarchar(30)
As
SelectCompanyName,Licence,Industry,Properity,Set_Year,Set_Month,Set_Day,Workers,Reg_Currency,CurrencyType,Company_Memo,ContactPerson,Phone,PhoneKeep,CompanyFax,Email,EmailKeep,Locus_Area,Locus_City,Address,ZipCode,WebHomeFrom[pH_Company_Base]WhereComid=@Comid
行进公司查询
2查询用户
setANSI_NULLSON
setQUOTED_IDENTIFIERON
go
ALTERPROCEDURE[dbo].[Per_BasicInfo]
@Peridnvarchar(30)
AS
SelectB.UserEmail,I.RealName,I.Sex,I.Nation,I.Marry,I.Door_Area,I.Door_City,I.Locus_Area,I.Locus_City,I.Stature,I.TiZhong,I.Birthyear,I.BirthMonth,I.BirthDay,I.PersonPhone,I.Msnqq,I.WebHome,I.Appraise,I.CodeId,I.CodeType,I.Mt,I.ZipCode,I.Address,I.JobType,i.Exper,i.SkillsFrompH_Person_BaseAsB,pH_Person_InfoAsIWhereB.Perid=@PeridAndB.Perid=I.Perid
3查询用户消息
setANSI_NULLSON
setQUOTED_IDENTIFIERON
go
ALTERprocedure[dbo].[Per_UserName]
@Peridnvarchar(30)
As
SelectRealName,JobType,UserNameFrom[pH_Person_Info]WherePerid=@Perid
3、触发器设计
在SQLSERVER为每个触发器都创建了两个专用表:
inserted表和deleted表。
这是两个逻辑表,由系统来维护,在触发执行时存在,在触发结束时消失。
1People表
Go
Createtriggerdel_peo
OnUser
Afterdelete
As
DeletefromUser
WherePersonidin(Selectfromdeleted)
go
2Admin表
go
CreatetriggerAdm_Ins
OnAdmin
AfterInsert
As
if(selectidfromPeople,insertedwherePeople.id=inserted.id)=1beginprint'ThePeopleisbeingprocessed'rollback
transactionend
4、数据完整性设计
我通过以下方面设计:
主键约束(Primarykey)
外键约束(Foreignkey)
惟一性约束(Unique)
缺省约束(Default)
检查约束(Check)
1、主键约束(Primarykey)
主键约束利用表中一列或多列数据惟一地确定表中的每一条记录。
注意:
如果主键约束定义在不止一列上,则一列中的值可以重复,但所有列的组合值必须惟一
主键列不能取空值
主键列不存在重复的值
主键只能设置一个
设置People表的主键约束
在企业管理器中右击要操作的数据表(People),从弹出的快捷菜单中选择“设计表”选项,则出现设计表对话框
设置表的主键约束
选中要设置为主键的字段,如果有多个字段,按住Ctrl同时选中,从快捷菜单中选择“设置主键”或单击
设置Company表的主键约束
设置Company表的id为主键约束
2、惟一性约束(Unique)
用来确保不受主键约束的列上的数据的惟一性。
例如:
身份证号。
与主键的区别:
Unique约束允许该列上存在NULL值,主键不允许
可以在一个表中设置多少Unique约束,而主键只能设置一个
3、检查约束(Check)
检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性
一个表可以定义多个检查约束
每个字段只能对应一个检查约束
为User(用户信息)表中的Sex字段创建检查约束,使其只能接受“男”或者“女”的输入
4、创建默认约束
默认约束指在插入操作中没有提供输入值时,系统自动指定的值。
默认约束可以包括常量、函数、空值。
每个字段只能定义一个默认约束
如果定义的默认值长于该字段的允许长度,那么输入的默认认值会被截断
5、数据库安全性设计
数据库可以实现数据的共享,但是就必然会存在数据库安全的问题,所以,我将这个系统的数据库做如下处理,将数据库设置系统的核对口令,确保只授权给有资格的用户访问数据库的权限,定义合法的用户存储,并且进行权限合法的检验。
另外通过SQL的GRANT和REMOVE的语句实现用户权限组成(授权)
授权给公司(管理员),在这里我们可以认为是公司方面的招聘人员,可以对User信息修改、删除和认证
同时可以对权限收回,如果检验应聘人员时发生错误,可以将已经授权的收回。
数据库的角色是指付给不同职务不同的权利,例如对于注册应聘的人不具有修改Company表中消息的权利,而招聘这个岗位则有。
五、存在问题与不足:
部分表中的外键设置不好,而且表与表之间的联系较多,会造成部分的低内聚和高耦合,有部分没加密的数据会成为敏感信息给不法分子机会,还有就是权限晋升造成缓冲区溢出,还有开启了不必要的数据库功能,没有避免SQL注入,我将在以后逐步完善系统的数据库和存在的问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 9210090514 袁博