赞
踩
基于MySqL与Navicat
在学生就业管理系统中,学生端的需求主要包括以下几个方面:
1、浏览招聘信息需求:学生需要能够浏览到最新的招聘信息,包括职位名称、公司名称、薪资待遇、工作地点等信息。
2、投递简历需求:学生需要能够在系统中投递个人简历,包括个人基本信息、教育背景、工作经验、个人能力等信息。
3、查看招聘进展需求:学生需要能够查看自己投递的简历的审核进展情况。
为满足这些需求,在数据库中设计以下表格和视图:
1、招聘信息表:用于存储最新的招聘信息,包括职位名称、公司名称、薪资待遇、工作地点等信息。
2、简历表:用于存储学生投递的个人简历,包括个人基本信息、教育背景、工作经验、个人能力等信息。
3、投递视图:用于存储学生投递的简历信息,包括投递时间、招聘信息 ID、学生 ID 等信息。
4、审核视图:用于存储招聘信息的审核情况,包括简历 ID、审核状态、审核意见等信息。
5、个人信息视图:用于存储学生的个人信息,包括姓名、性别、联系方式等信息。
通过这些表格和视图的设计,可以实现学生端的需求。例如,学生可以通过查询招聘信息表来浏览最新的招聘信息;通过向简历表插入个人简历信息来实现投递简历功能;通过查询审核表来查看自己投递的简历的审核进展情况。
根据数据库中对企业端进行的需求分析,可以设置以下功能来满足其需求:
1、招聘信息发布需求:企业可以发布招聘信息,包括职位名称、要求、薪资、工作地点等信息。发布的招聘信息将在系统中展示给学生端用户。
2、简历筛选与管理需求:企业可以收到学生端用户提交的简历,并进行筛选和管理。可以通过系统提供的界面查看简历、进行评估和标记,方便后续的招聘流程。
3、编写审核意见的需求:企业端可以根据系统提供的统计报表进行数据分析,包括招聘进度、面试情况、录用比例等。这些统计报表可以帮助企业端进行招聘活动的评估和优化。
为满足这些需求,在数据库中设计以下表格和视图:
1、岗位表:用于发布企业岗位。该表包括岗位的唯一标识、公司名称、招聘职位、所在地等信息。
2、浏览学生信息视图:用于企业浏览学生所投简历。包含学生简历ID、学生所报岗位 ID、学生毕业院校、学生经历和学生个人能力。
3、企业审核表:通过浏览学生简历,企业填写意见,是否通过学生简历,包括填写日期、简历 ID、审核状态以及审核意见。
通过对以上表格的设置和相应字段的定义,企业端可以实现招聘信息发布、简历筛选与管理、面试安排与记录以及统计报表分析等功能。这些功能可以帮助企业端进行招聘管理和数据分析,提高招聘效率和决策能力。
根据数据库中对学校端进行的需求分析,可以设置以下功能来满足其需求:
1、学生信息管理需求:学校端可以管理学生的基本信息,包括学生的姓名、学号、性别、年级、专业等。
2、就业信息管理需求:学校端可以记录学生的就业信息,包括就业状态、就业单位、职位、薪资等,以便进行统计和报表分析。
3、就业指导管理需求:学校端可以提供就业指导服务,包括招聘信息发布、职业规划指导等,以帮助学生顺利就业。
4、统计报表分析需求:学校端可以根据学生就业情况生成统计报表,包括就业率、薪资水平、就业行业分布等,以便进行学校就业情况的分析和评估。
为满足这些需求,在数据库中设计以下表格:
1、学生表:学生信息表,用于存储学生的基本信息。它包括学生的学号、姓名、性别、年级、专业等字段,可以用于学校端对学生信息的管理和查询。
2、就业表:就业信息表,用于记录学生的就业信息。该表包括学生的学号、就业状态、就业单位、职位、薪资等字段,可以跟踪学生的就业情况,并进行统计和分析。
3、简历投递统计视图:就业指导表,用于存储学生的简历投递记录。该视图包含学生学号、投递岗位 ID、学生姓名、公司名称、岗位、每月薪资和工作地点。
4、就业统计表:统计报表,学生填写自己的意象岗位,也用于学校更好地统计学生信息。
通过以上表格的设置和相应字段的定义,学校端可以实现对学生信息、就业信息、就业指导和统计报表的管理和查询功能。这些表的功能可以帮助学校端进行学生就业管理、就业指导和就业情况的统计与分析。
表名称 | 定义 | 说明 |
---|---|---|
Student | 学生信息 | 列出学生个人信息,学号、姓名等 |
Resume | 学生简历 | 列出学生个人经历以及能力 |
Job | 岗位信息 | 列出企业所发布的岗位以及其他信息,如公司名称、每月薪资等 |
Review | 审核表 | 用于企业审核学生所投简历 |
Employment | 就业统计 | 用于学校统计学生确定就业的企业 |
学生信息
字段 | 类型 | 长度 | 取值范围 | 是否可为空 | 含义 |
---|---|---|---|---|---|
Sno | CHAR | 10 | 所有数字 | 否 | 学号 |
Sname | VARCHAR | 10 | 所有汉字 | 否 | 姓名 |
Sdept | VARCHAR | 20 | 所有汉字、数字 | 否 | 专业 |
Ssex | VARCHAR | 2 | ‘男’或‘女’ | 否 | 性别 |
Sage | SMALLINT | 2 | ‘10’至‘99’的数字 | 否 | 年龄 |
Sphone | VARCHAR | 11 | 所有数字 | 否 | 手机 |
Smial | VARCHAR | 30 | 所有字符 | 否 | 邮箱 |
学生简历
字段 | 类型 | 长度 | 取值范围 | 是否可为空 | 含义 |
---|---|---|---|---|---|
Rid | INT | 10 | [1,2^31-1] | 否 | 简历 ID |
Rsno | CHAR | 10 | 所有数字 | 否 | 学生学号 |
Rjid | CHAR | 5 | 所有字符 | 否 | 岗位 ID |
Runiversity | VARCHAR | 20 | 所有汉字 | 是 | 就读学校 |
Rexperience | VARCHAR | 150 | 所有字符 | 是 | 学生经历 |
Rability | VARCHAR | 150 | 所有字符 | 是 | 学生能力 |
企业招聘信息
字段 | 类型 | 长度 | 取值范围 | 是否可为空 | 含义 |
---|---|---|---|---|---|
Jid | CHAR | 5 | 所有字符 | 否 | 岗位 ID |
Jcname | VARCHAR | 50 | 所有字符 | 否 | 公司名称 |
Jposition | VARCHAR | 50 | 所有字符 | 否 | 招聘职位 |
Jmoney | INT | 8 | [1,2^31-1] | 否 | 每月薪资 |
Jlocation | VARCHAR | 100 | 所有汉字 | 否 | 工作地点 |
企业审核意见
字段 | 类型 | 长度 | 取值范围 | 是否可为空 | 含义 |
---|---|---|---|---|---|
REdate | DATE | 8 | 日期 | 否 | 就业日期 |
RErid | INT | 10 | [1,2^31-1] | 否 | 简历 ID |
REjid | CHAR | 5 | 所有字符 | 否 | 岗位 ID |
REst | VARCHAR | 10 | ‘未审核’或‘已审核’ | 否 | 审核状态 |
REct | VARCHAR | 100 | 所有字符 | 是 | 审核意见 |
学生就业统计
字段 | 类型 | 长度 | 取值范围 | 是否可为空 | 含义 |
---|---|---|---|---|---|
Esno | CHAR | 10 | 所有数字 | 否 | 学生学号 |
Ejno | CHAR | 5 | 所有字符 | 否 | 岗位 ID |
Etime | DATE | 8 | 日期 | 否 | 就业日期 |
学生个人信息表的创建
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)
);
由于本系统是有学生、企业、学校三方构成,故在设计系统时考虑到多用户分别建立了【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`;
①在【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;
由于要限定学生提交简历、企业审核简历以及学生提交自身岗位选择的时间,所以要创建三个事件用于到期时删除属于学生的简历表、属于企业的审核表以及属于学生的就业信息表。
①创建在 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_李清`;
④查看事件
SHOW EVENTS;
①插入学生个人信息
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';
①查看个人信息视图
SELECT * FROM 学生信息_李清;
②查看招聘信息表
SELECT * FROM Job;
③查看招聘信息表,选择工作地点在武汉或者上海的职位,并按月薪排序
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 语言,无障碍阅读英文文献');
⑤查看简历信息视图
SELECT * FROM 简历信息_李清;
⑥查看审核信息视图
SELECT * FROM 审核_李清;
第一次查询结果(企业未审核)
第二次查询结果(企业审核完毕)
【图片】
⑦往学校提交自身就业选择
【Student_李清】获得了两个 Offer,岗位“11111”的每月薪资为 5 万元,且学生自身对算法更感兴趣,【Student_李清】选择了岗位“11111”。
往表【Employment_李清】插入数据并查看
INSERT
INTO Employment_李清(LQEjno)
VALUES ('11111');
SELECT * FROM Employment_李清;
①查看投递简历视图
SELECT * FROM 企业简历浏览_XYY;
②编辑审核意见
INSERT
INTO Review_XYY(XYYRErid,XYYREjid,XYYREct)
VALUES(3,'11111','通过'),(4,'11100','通过'),(1,'11100','拒绝');
③查看【Review_XYY】表
SELECT * FROM Review_XYY;
④查看企业审核视图
SELECT * FROM 企业审核_XYY;
对于非毕业生,非企业人员只给予其浏览【Job】表的权利。
SELECT * FROM Job;
①创建学生招聘信息视图,用于查看学生简历投递情况,以及相关信息。创建并查看视图【学生招聘信息】
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);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。