Day 3
经过各种斟酌,砍了不少一时心血来潮想做的东西,数据库课设的核心内容就定下来了。
公司 Company
名称 | 字段 | 数据类型 |
---|---|---|
id | id | int |
公司名 | name | varchar(20) |
地理位置 | address | verchar(50) |
介绍 | desc | text |
公司图片(带后缀) | pid | String |
职位 Position
名称 | 字段 | 约束 |
---|---|---|
id | id | int |
所属公司 ID | company | int |
职位名称 | name | varchar(20) |
工作城市 | city | varchar(10) |
工作类型(研发、财务) | sort | varchar(10) |
招聘类型(实习、应届) | type | varchar(10) |
薪资 | salary | varchar(10) |
职位描述 | desc | text |
职位(基本)要求 | demand | text |
申请 Apply
名称 | 字段 | 约束 | 说明 |
---|---|---|---|
应聘者id | id | int | 主键之一 |
应聘职位 | position | int | 主键之一 |
成绩排名 | rate | int | 没地方放就只能塞这里 |
投递附件名 | attachment | varchar(20) | 用 UUID 重命名后的东西 |
起始状态 | start | int | 链首 |
最新状态 id | cur | int | 链尾 |
投递简历申请后,创建一个新的状态 n e w new new,令 s t a r t = c u r = n e w start = cur = new start=cur=new,描述是 ”等待简历审核“,面试方式是 ”线上审核“。每次面试结束后,面试官在平台上填写面试结果:
-
“未通过”:发感谢信, n e x t = − 1 next = -1 next=−1 , r e s u l t = 0 result = 0 result=0
-
”下一场面试“, n e x t = N e w next=New next=New, r e s u l t = 1 result = 1 result=1
-
“发放offer”, n e x t = − 1 next = -1 next=−1 , r e s u l t = 1 result = 1 result=1
同一时间,一个人对某份工作的申请只会有一个面试状态是 0 0 0,这个会筛出来给公司面试官挑选
n e x t next next 为 0 和 -1 都代表是某个面试状态链表的链尾,
- -1 表示面试已经彻底结束;
- 0 的话,
- 如果 r e s u l t result result 是 -1,代表还未开始;不可能是 0,0 就会直接设为 -1;不可能是 1,通过要么直接发 offer,要么就是直接新建节点
- 所以在 n e x t next next 的值为 0 时, 看面试官 id 有没有值就可以知道该简历是否被其他面试官提取。用于面试官在后台系统中查找待安排的投递。
学生查看自己的投递:
-- 先查询自己所有的投递,得到一个 list
select position,start,cur
from apply
where apply.id = loginUser.id;
/*
对于上面的 list 得每个元素
forEach apply : list
Long no = apply.id;
whlie( no > 0 ) {
var nextApply = mapper.getById(no);
applyList.add(nextApply)
no = nextApply.next;
}
*/
公司人员查看自己可以审取的投递
select applicant,position
from interview
where next = 0 and hrid = 0;
-- 如果要查看细节则根据 applicant 和 position 再次查询
公司人员查看自己审查过的投递
select applicant,position,`desc`,result
from interview
where hr_id = loginUser.id;
面试状态 interview
名称 | 字段 | 约束 | |
---|---|---|---|
id | id | int | |
应聘者 | applicant | int | |
应聘职位 | position | int | |
描述 | desc | varcahr(10) | 筛简历,一面、二面 |
面试官 | hrid | int | |
面试官 | hrname | varchar(20) | |
面试时间 | time | datetime | |
面试地点/方式 | place | varchar(20) | 线上——腾讯会议;线下 |
面试结果 | result | int | -1没有,0被拒,1通过 |
下一面试状态 id | next | int | 正数下一个,0 和 -1指末尾 |
账号 Account
名称 | 字段 | 约束 | 说明 |
---|---|---|---|
对应人员 ID | id | int | ID 同时对应账号表和信息表 |
账号 | username | varchar(20) | |
密码 | password | varchar(20) | |
类型 | type | int | 1,2,3——学生,公司,管理 |
头像 | pid | varchar(20) | 头像 UUID,带后缀 |
人员 People
名称 | 字段 | 约束 |
---|---|---|
id | id | int |
姓名 | name | varchar(20) |
性别 | sex | int(1) |
年龄 | age | int(3) |
邮箱 | varchar(20) | |
电话 | tele | char(13) |
身份证号 | ino | char(20) |
学生 Student
名称 | 字段 | 约束 |
---|---|---|
id | id | int |
学校 | school | varchar(20) |
学号 | sno | varchar(20) |
专业 | major | varchar(20) |
毕业年份 | graduate | int |
公司人员 Employee
名称 | 字段 | 约束 | 说明 |
---|---|---|---|
id | id | int | |
公司 ID | company | int | |
职位身份 | career | varchar(20) | |
账号等级 | level | int | 3 最高,且每个公司只有一个lev 3; |
登录、拦截器已经弄好了。注册还没。直接抄的 JavaEE 课程实验作业的。
昨天下午花了一下午搞那个注册的表单…,强迫症远离前端,md,数据库课设在前端浪费一堆时间。
几乎一个 html 对应一个 css,醉了