门生就业管理系统(更新ing)
基于MySqL与Navicat
一、需求分析
(1)门生需求分析
在门生就业管理系统中,门生端的需求主要包罗以下几个方面:
1、浏览招聘信息需求:门生必要能够浏览到最新的招聘信息,包罗职位名称、公司名称、薪资待遇、工作所在等信息。
2、投递简历需求:门生必要能够在系统中投递个人简历,包罗个人基本信息、教育配景、工作经验、个人能力等信息。
3、查看招聘盼望需求:门生必要能够查看自己投递的简历的审核盼望情况。
为满足这些需求,在数据库中设计以下表格和视图:
1、招聘信息表:用于存储最新的招聘信息,包罗职位名称、公司名称、薪资待遇、工作所在等信息。
2、简历表:用于存储门生投递的个人简历,包罗个人基本信息、教育配景、工作经验、个人能力等信息。
3、投递视图:用于存储门生投递的简历信息,包罗投递时间、招聘信息 ID、门生 ID 等信息。
4、审核视图:用于存储招聘信息的审核情况,包罗简历 ID、审核状态、审核意见等信息。
5、个人信息视图:用于存储门生的个人信息,包罗姓名、性别、接洽方式等信息。
通过这些表格和视图的设计,可以实现门生端的需求。例如,门生可以通过查询招聘信息表来浏览最新的招聘信息;通过向简历表插入个人简历信息来实现投递简历功能;通过查询审核表来查看自己投递的简历的审核盼望情况。
(2)企业需求分析
根据数据库中对企业端进行的需求分析,可以设置以下功能来满足其需求:
1、招聘信息发布需求:企业可以发布招聘信息,包罗职位名称、要求、薪资、工作所在等信息。发布的招聘信息将在系统中展示给门生端用户。
2、简历筛选与管理需求:企业可以收到门生端用户提交的简历,并进行筛选和管理。可以通过系统提供的界面查看简历、进行评估和标记,方便后续的招聘流程。
3、编写审核意见的需求:企业端可以根据系统提供的统计报表进行数据分析,包罗招聘进度、面试情况、任命比例等。这些统计报表可以资助企业端进行招聘活动的评估和优化。
为满足这些需求,在数据库中设计以下表格和视图:
1、岗位表:用于发布企业岗位。该表包罗岗位的唯一标识、公司名称、招聘职位、所在地等信息。
2、浏览门生信息视图:用于企业浏览门生所投简历。包含门生简历ID、门生所报岗位 ID、门生毕业院校、门生经历和门生个人能力。
3、企业审核表:通过浏览门生简历,企业填写意见,是否通过门生简历,包罗填写日期、简历 ID、审核状态以及审核意见。
通过对以上表格的设置和相应字段的定义,企业端可以实现招聘信息发布、简历筛选与管理、面试安排与记载以及统计报表分析等功能。这些功能可以资助企业端进行招聘管理和数据分析,进步招聘服从和决定能力。
(3)学校需求分析
根据数据库中对学校端进行的需求分析,可以设置以下功能来满足其需求:
1、门生信息管理需求:学校端可以管理门生的基本信息,包罗门生的姓名、学号、性别、年级、专业等。
2、就业信息管理需求:学校端可以记载门生的就业信息,包罗就业状态、就业单元、职位、薪资等,以便进行统计和报表分析。
3、就业引导管理需求:学校端可以提供就业引导服务,包罗招聘信息发布、职业规划引导等,以资助门生顺利就业。
4、统计报表分析需求:学校端可以根据门生就业情况生成统计报表,包罗就业率、薪资程度、就业行业分布等,以便进行学校就业情况的分析和评估。
为满足这些需求,在数据库中设计以下表格:
1、门生表:门生信息表,用于存储门生的基本信息。它包罗门生的学号、姓名、性别、年级、专业等字段,可以用于学校端对门生信息的管理和查询。
2、就业表:就业信息表,用于记载门生的就业信息。该表包罗门生的学号、就业状态、就业单元、职位、薪资等字段,可以跟踪门生的就业情况,并进行统计和分析。
3、简历投递统计视图:就业引导表,用于存储门生的简历投递记载。该视图包含门生学号、投递岗位 ID、门生姓名、公司名称、岗位、每月薪资和工作所在。
4、就业统计表:统计报表,门生填写自己的意象岗位,也用于学校更好地统计门生信息。
通过以上表格的设置和相应字段的定义,学校端可以实现对门生信息、就业信息、就业引导和统计报表的管理和查询功能。这些表的功能可以资助学校端进行门生就业管理、就业引导和就业情况的统计与分析。
二、数据字典
表名称定义分析Student门生信息列出门生个人信息,学号、姓名等Resume门生简历列出门生个人经历以及能力Job岗位信息列出企业所发布的岗位以及其他信息,如公司名称、每月薪资等Review审核表用于企业审核门生所投简历Employment就业统计用于学校统计门生确定就业的企业 门生信息
字段类型长度取值范围是否可为空含义SnoCHAR10所有数字否学号SnameVARCHAR10所有汉字否姓名SdeptVARCHAR20所有汉字、数字否专业SsexVARCHAR2‘男’或‘女’否性别SageSMALLINT2‘10’至‘99’的数字否年龄SphoneVARCHAR11所有数字否手机SmialVARCHAR30所有字符否邮箱 门生简历
字段类型长度取值范围是否可为空含义RidINT10[1,2^31-1]否简历 IDRsnoCHAR10所有数字否门生学号RjidCHAR5所有字符否岗位 IDRuniversityVARCHAR20所有汉字是就读学校RexperienceVARCHAR150所有字符是门生经历RabilityVARCHAR150所有字符是门生能力 企业招聘信息
字段类型长度取值范围是否可为空含义JidCHAR5所有字符否岗位 IDJcnameVARCHAR50所有字符否公司名称JpositionVARCHAR50所有字符否招聘职位JmoneyINT8[1,2^31-1]否每月薪资JlocationVARCHAR100所有汉字否工作所在 企业审核意见
字段类型长度取值范围是否可为空含义REdateDATE8日期否就业日期REridINT10[1,2^31-1]否简历 IDREjidCHAR5所有字符否岗位 IDREstVARCHAR10‘未审核’或‘已审核’否审核状态REctVARCHAR100所有字符是审核意见 门生就业统计
字段类型长度取值范围是否可为空含义EsnoCHAR10所有数字否门生学号EjnoCHAR5所有字符否岗位 IDEtimeDATE8日期否就业日期 三、SQL语句的功能实现
(1)创建基本表
门生个人信息表的创建
- CREATE TABLE Student(
- Sno CHAR(10) PRIMARY KEY, /*学号*/
- Sname VARCHAR(10) NOT NULL, /*姓名*/
- Sclass VARCHAR(20) NOT NULL, /*专业班级*/
- Ssex CHAR(2), /*性别*/
- Sage SMALLINT NOT NULL, /*年龄*/
- Sphone VARCHAR(11) NOT NULL, /*电话*/
- Smail VARCHAR(30) NOT NULL, /*邮箱*/
- CHECK(Ssex IN ('男','女'))
- );
复制代码 企业招聘表的创建
- CREATE TABLE Job(
- Jid CHAR(5) PRIMARY KEY, /*岗位 ID*/
- Jcname VARCHAR(50) NOT NULL, /*公司名称*/
- Jposition VARCHAR(50) NOT NULL, /*招聘职位*/
- Jmoney INT NOT NULL, /*每月薪资*/
- Jlocation VARCHAR(100) NOT NULL /*工作地点*/
- );
复制代码 门生简历表的创建
- CREATE TABLE Resume(
- Rid INT NOT NULL AUTO_INCREMENT, /*简历 ID*/
- Rsno CHAR(10), /*学生学号*/
- Rjid CHAR(5), /*岗位 ID*/
- Runiversity VARCHAR(20) NOT NULL, /*学生学校*/
- Rexperience VARCHAR(150) NOT NULL, /*学生经历*/
- Rability VARCHAR(150) NOT NULL, /*学生能力*/
- PRIMARY KEY(Rid),
- FOREIGN KEY(Rsno)REFERENCES Student(Sno),
- FOREIGN KEY(Rjid)REFERENCES Job(Jid)
- );
复制代码 简历审核表的创建
- CREATE TABLE Review(
- REdate DATE, /*日期*/
- RErid INT PRIMARY KEY, /*简历 ID*/
- REjid CHAR(5), /*岗位 ID*/
- REst VARCHAR(10), /*审核状态*/
- REct VARCHAR(50), /*审核意见*/
- CHECK(REst IN ('未审核','已审核')),
- FOREIGN KEY(RErid)REFERENCES Resume(Rid)
- );
复制代码 门生就业统计表的创建
- CREATE TABLE Employment(
- Esno CHAR(10), /*学号*/
- Ejno CHAR(5), /*岗位编号*/
- Etime DATE, /*就业日期*/
- FOREIGN KEY(Esno) REFERENCES Student(Sno)
- );
复制代码 (2)创建多用户
由于本系统是有门生、企业、学校三方构成,故在设计系统时思量到多用户分别建立了【Student_李清】、【Company_喜羊羊】以及【X_游客】三个用户,【Student_李清】为门生用户,【Company_喜羊羊】为企业用户,【X_游客】为游客。
①创建子表
为【Student_李清】创建一个可供其编辑自身简历的表以及一个提
交自身就业信息的表
- -- 学生简历_李清
- CREATE TABLE Resume_李清(
- LQRjid CHAR(5),
- LQRuniversity VARCHAR(20) NOT NULL,
- LQRexperience VARCHAR(150) NOT NULL,
- LQRability VARCHAR(150) NOT NULL,
- FOREIGN KEY(LQRjid)REFERENCES Job(Jid)
- );
- -- 就业信息表
- CREATE TABLE Employment_李清(
- LQEjno CHAR(5) /*岗位 ID*/
- );
复制代码 为【Company_喜羊羊】创建一个可供其编辑的简历投递审核表
- CREATE TABLE Review_XYY(
- XYYRErid INT, /*简历 ID*/
- XYYREjid CHAR(5), /*岗位 ID*/
- XYYREct VARCHAR(50) /*审核意见*/
- );
复制代码 ②创建视图
出于保护个人信息的观点,对于门生个人来说只能够提供其一人的个人信息,企业只能够观看投递到本企业的信息,因此对于门生和企业分别为其创建视图。
创建对于【Student_李清】的个人信息视图
- CREATE VIEW 学生信息_李清(学号,姓名,专业班级,性别,年龄,手机号码,电子邮箱)
- AS SELECT Sno,Sname,Sclass,Ssex,Sage,Sphone,Smail
- FROM Student
- WHERE Sno='1234560970';
复制代码 创建【Student_李清】个人简历视图,此视图跟【Resume_李清】的区别为此视图从表【Resume】中来,会有对于此份简历的简历 ID
- CREATE VIEW 简历信息_李清(简历 ID,学号,岗位 ID,毕业院校,经历,能力)
- AS SELECT Rid,Rsno,Rjid,Runiversity,Rexperience,Rability
- FROM Resume
- WHERE Rsno='1234560970';
复制代码 创建【Student_李清】简历审核视图用于门生查看自身简历投递情况
- CREATE VIEW 审核_李清(日期,简历 ID,审核状态,审核意见)
- AS SELECT REdate,RErid,REst,REct
- FROM Review,Resume
- WHERE Rid=RErid AND Rsno='1234560970';
复制代码 创建用于【Company_喜羊羊】查看往企业投递的门生简历
- CREATE VIEW 企业简历浏览_XYY(简历 ID,学号,岗位 ID,毕业院校,经历,能力)
- AS SELECT Rid,Rsno,Rjid,Runiversity,Rexperience,Rability
- FROM Resume
- WHERE Rjid LIKE '11%';
复制代码 创建【企业审核_XYY】视图,用于企业查看自己的审核情况
- CREATE VIEW 企业审核_XYY(日期,简历 ID,审核状态,审核意见)
- AS SELECT REdate,RErid,REst,REct
- FROM Review,Resume
- WHERE Rid=RErid AND Rjid LIKE '11%';
复制代码 ③创建并授予用户相应权限
对【Student_李清】给予对【Job】、【门生信息_李清】、【简历信息_李清】、【审核_李清】的查看权,对【Resume_李清】和【Employment_李清】的查看和编辑权。
对【Company_喜羊羊】给予【Job】、【企业简历浏览_XYY】、【企业审核_XYY】的查看权,对【Review_XYY】的查看和编辑权。
对【X_游客】仅给予对【Job】表的查看权。
- -- 创建【Student_李清】、【Company_喜羊羊】和【X_游客】
- CREATE USER `Student_李清`@`localhost` IDENTIFIED BY '123456';
- CREATE USER `Company_喜羊羊`@`localhost` IDENTIFIED BY '123456';
- CREATE USER `X_游客`@`localhost`;
- -- Student_李清
- GRANT Select ON TABLE `学生就业`.`job` TO `Student_李清`@`localhost`;
- GRANT Insert, Select ON TABLE `学生就业`.`resume_李清` TO `Student_李清`@`localhost`;
- GRANT Select ON TABLE `学生就业`.`学生信息_李清` TO `Student_李清`@`localhost`;
- GRANT Select ON TABLE `学生就业`.`简历信息_李清` TO `Student_李清`@`localhost`;
- GRANT Select ON TABLE `学生就业`.`审核_李清` TO `Student_李清`@`localhost`;
- GRANT Insert, Select ON TABLE `学生就业`.`employment_李清` TO `Student_李清`@`localhost`;
- -- Company_喜羊羊
- GRANT Select ON TABLE `学生就业`.`job` TO `Company_喜羊羊`@`localhost`;
- GRANT Insert, Select ON TABLE `学生就业`.`review_xyy` TO `Company_喜羊羊`@`localhost`;
- GRANT Select ON TABLE `学生就业`.`企业简历浏览_xyy` TO `Company_喜羊羊`@`localhost`;
- GRANT Select ON TABLE `学生就业`.`企业审核_xyy` TO `Company_喜羊羊`@`localhost`;
- -- X_游客
- GRANT Select ON TABLE `学生就业`.`job` TO `X_游客`@`localhost`;
复制代码
(3)创建触发器
①在【Resume_李清】表中创建触发器,用于门生编辑此表时将值同步到表【Resume】
- CREATE TRIGGER `IN1` AFTER INSERT ON `Resume_李清` FOR EACH ROW BEGIN
- INSERT INTO Resume(Rsno,Rjid,Runiversity,Rexperience,Rability)
- VALUES('1234560970',NEW.LQRjid,NEW.LQRuniversity,NEW.LQRexperience,NEW.LQRability);
- END;
复制代码 ②在【Resume】表中创建触发器,用于将简历 ID,岗位 ID 同步到表【Review】中,并将日期定义为如今,审核状态为“未审核”
- CREATE TRIGGER `IN2` AFTER INSERT ON `Resume` FOR EACH ROW BEGIN
- INSERT INTO Review(REdate,RErid,REjid,REst)
- VALUES(NOW(),NEW.Rid,NEW.Rjid,'未审核');
- END;
复制代码 ③在【Review_XYY】表中创建触发器,用于将企业审核意见同步到表【Review】中
- CREATE TRIGGER `IN3` AFTER INSERT ON `Review_XYY` FOR EACH ROW BEGIN
- INSERT INTO Review(REdate,RErid,REjid,REst,REct)
- VALUES(NOW(),NEW.XYYREid,NEW.XYYREjid,NEW.XYYREst,NEW.XYYREct);
- END;
复制代码 ④在【Employment_李清】表中创建触发器,用于门生将自身岗位选择同步到表【Employment】中
- CREATE TRIGGER `IN4` AFTER INSERT ON `Employment_李清` FOR EACH ROW BEGIN
- INSERT INTO Employment(Esno,Ejno,Etime)
- VALUES('0122115970',NEW.LQEjno,NOW());
- END;
复制代码 (4)创建变乱
由于要限定门生提交简历、企业审核简历以及门生提交自身岗位选择的时间,所以要创建三个变乱用于到期时删除属于门生的简历表、属于企业的审核表以及属于门生的就业信息表。
①创建在 2024 年 08 月 31 日 23 时 59 分 59 秒删除表【Resume_李清】的变乱。
- -- 定时删除【Resume_李清】
- CREATE EVENT `DELETE_Resume_李清`
- ON SCHEDULE
- AT TIMESTAMP '2024-08-31 23:59:59'
- DO
- DROP TABLE `Resume_李清`;
复制代码 ②创建在 2024 年 09 月 10 日 23 时 59 分 59 秒删除表【Review_XYY】的变乱。
- -- 定时删除【Review_XYY】
- CREATE EVENT `DELETE_Review_XYY`
- ON SCHEDULE
- AT TIMESTAMP '2024-09-10 23:59:59'
- DO
- DROP TABLE `Review_XYY`;
复制代码 ③创建在 2024 年 09 月 20 日 23 时 59 分 59 秒删除表【Employment_李清】的变乱。
- -- 定时删除【Employment_李清】
- CREATE EVENT `DELETE_Employment_李清`
- ON SCHEDULE
- AT TIMESTAMP '2024-09-20 23:59:59'
- DO
- DROP TABLE `Employment_李清`;
复制代码 ④查看变乱
(5)【学校端(管理员)】(1)
①插入门生个人信息
- INSERT
- INTO Student(Sno,Sname,Sclass,Ssex,Sage,Sphone,Smail)
- VALUES
- ('1234560970','李清','经济2001','男',21,'35212340000','983123542@aa.com'),
- ('1234560974','刘六六','经济cy2001','男',21,'35212340004','883123543@aa.com'),
- ('1234560973','胡佳建','经济xyz2003','男',22,'35212340003','383123544@aa.com'),
- ('1234560975','张益达','数学abcd2001','男',24,'35212340005','783123545@aa.com'),
- ('1234560976','纳尔','营销2002','男',20,'35212340006','563123546@aa.com'),
- ('1234560977','谢冰','信计2004','女',22,'35212340007','983123547@aa.com'),
- ('1234560978','王为','统计2001','男',21,'35212340008','987523548@qaa.com'),
- ('1234560979','杨帆','财务2003','女',23,'35212340009','983123549@aa.com'),
- ('1234560980','马迪','金融2002','女',21,'35212340010','7983123550@aa.com'),
- ('1234560983','孙里','新闻12003','女',21,'35212340013','983123551@aa.com'),
- ('1234560985','李强','材料sy2001','男',23,'35212340015','983123552@aa.com'),
- ('1234560987','梦想','法学2004','女',21,'35212340017','7983123553@aa.com'),
- ('1234560990','吴昊','财务2001','男',21,'35212340020','7983123554@aa.com'),
- ('1234560993','李敏','信管2001','女',23,'35212340023','983123555@aa.com'),
- ('1234560995','陈扬','汉语2001','女',23,'35212340025','121123556@aa.com'),
- ('1234560996','温泉','会计2003','女',20,'35212340026','783123557@aa.com'),
- ('1234560972','王龙','车辆2006','男',21,'35212340002','383123558@aa.com'),
- ('1234560998','王楠','英语2001','女',23,'35212340028','783123559@aa.com'),
- ('1234560999','李慧','软件2004','女',21,'35212340029','383123560@aa.com'),
- ('1234560971','孟六','电商2002','男',20,'35212340001','383123561@aa.com');
复制代码
②插入企业招聘信息,定义岗位 ID 的前两个字符用于确定企业
- INSERT
- INTO Job(Jid,Jcname,Jposition,Jmoney,Jlocation)
- VALUES
- ('11111','XYY','算法工程师',50000,'上海'),
- ('TX451','TXQ','医学编辑(药学数据库)',7000,'上海'),
- ('TX481','TXQ','计算几何(图形学)算法研究员',20000,'南京'),
- ('BD111','BB','产品经理',5000,'北京'),
- ('BD001','BB','3D角色模型设计师',6000,'武汉'),
- ('TX111','TXQ','内容生成算法高级研究员',9000,'长沙'),
- ('BD591','BB','Python 研发工程师',14000,'厦门'),
- ('AA111','AA','游戏数据科学家',7500,'南京'),
- ('11100','XYY','FPGA 工程师',14999,'上海'),
- ('ZZ481','DFA','捡垃圾',200,'武汉');
复制代码
③基础操纵
查看属于经济学院的门生学号、姓名以及班级
- SELECT Sno,Sname,Sclass
- FROM Student
- WHERE (Sclass LIKE '经济%') OR (Sclass LIKE '金融%') OR (Sclass LIKE '国贸%') OR (Sclass LIKE '电商%');
复制代码
统计 22 岁以上的男性门生数量
- SELECT COUNT(*)
- FROM Student
- WHERE Ssex='男' AND Sage>22;
复制代码
更新学号为“1234560976”的手机号码,并查看
- UPDATE Student
- SET Sphone='13667221234'
- WHERE Sno='1234560976';
- SELECT *
- FROM Student
- WHERE Sno='1234560976';
复制代码
由于学号为“1234560985”的门生无法在今年毕业,删除其数据
- DELETE
- FROM Student
- WHERE Sno='1234560985';
- SELECT *
- FROM Student
- WHERE Sno='1234560985';
复制代码
(6)【门生端】以【Student_李清】为例
①查看个人信息视图
②查看招聘信息表
③查看招聘信息表,选择工作所在在武汉大概上海的职位,并按月薪排序
- SELECT *
- FROM Job
- WHERE Jlocation='上海' OR Jlocation='武汉'
- ORDER BY Jmoney DESC;
复制代码
④往工作所在为上海的岗位投递简历,即往【Resume_李清】表中插入数据
- INSERT
- INTO Resume_李清(LQRjid,LQRuniversity,LQRexperience,LQRability)
- VALUES
- ('11111','AABB大学','有程序设计比赛经历','有扎实的数学基础,会Python'),
- ('11100','AABB大学','有 FPGA 竞赛经历,并获奖','有 Altera/Xilinx系列FPGA芯片开发经验'),
- ('TX451','AABB大学','有网页后端开发经历','会 SQL 语言,无障碍阅读英文文献');
复制代码 ⑤查看简历信息视图
⑥查看审核信息视图
第一次查询效果(企业未审核)
第二次查询效果(企业审核完毕)
【图片】
⑦往学校提交自身就业选择
【Student_李清】获得了两个 Offer,岗位“11111”的每月薪资为 5 万元,且门生自身对算法更感兴趣,【Student_李清】选择了岗位“11111”。
往表【Employment_李清】插入数据并查看
- INSERT
- INTO Employment_李清(LQEjno)
- VALUES ('11111');
- SELECT * FROM Employment_李清;
复制代码 (7)【企业端】以【Company_喜羊羊】为例
①查看投递简历视图
- SELECT * FROM 企业简历浏览_XYY;
复制代码 ②编辑审核意见
- INSERT
- INTO Review_XYY(XYYRErid,XYYREjid,XYYREct)
- VALUES(3,'11111','通过'),(4,'11100','通过'),(1,'11100','拒绝');
复制代码 ③查看【Review_XYY】表
- SELECT * FROM Review_XYY;
复制代码 ④查看企业审核视图
(8)【游客端】
对于非毕业生,非企业人员只给予其浏览【Job】表的权利。
(9)【学校端(管理员)】(2)
①创建门生招聘信息视图,用于查看门生简历投递情况,以及相关信息。创建并查看视图【门生招聘信息】
- CREATE VIEW 学生招聘信息(学号,岗位 ID,学生姓名,公司名称,岗位,每月薪资,工作地点,简历审核意见)
- AS SELECT Sno,Jid,Sname,Jcname,Jposition,Jmoney,Jlocation,REct
- FROM Resume,Student,Job,Review
- WHERE Sno=Rsno AND Rjid=Jid AND Rid=RErid AND REst='已审核';
- SELECT * FROM 学生招聘信息;
复制代码 ②查看门生就业表【Employment】
- SELECT * FROM Employment;
复制代码 ③统计就业门生人数
- SELECT COUNT(*) 未就业人数 FROM Employment;
复制代码 ④统计已就业门生均匀薪资
- SELECT AVG(Jmoney) 平均薪资
- FROM Job,Employment,Resume
- WHERE Jid=Ejno;
复制代码 ⑤统计未就业门生学号、姓名
- SELECT Sno 学号,Sname 姓名
- FROM Student
- WHERE Sno NOT IN (SELECT Esno FROM Employment);
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |