8.2 KiB
8.2 KiB
第三次研讨会笔记
1. 用户表 (users)
此表用于存储所有注册到系统的用户的基本认证信息,并区分用户类型(个人或企业)。
| 字段名 | 数据类型 | 约束 | 描述 |
|---|---|---|---|
user_id |
BIGINT | PRIMARY KEY, AUTO_INCREMENT | 用户唯一标识ID |
username |
VARCHAR(50) | UNIQUE, NOT NULL | 用户名(用于登录) |
password_hash |
VARCHAR(255) | NOT NULL | 加密后的密码 |
email |
VARCHAR(100) | UNIQUE, NOT NULL | 邮箱(用于登录和验证) |
user_type |
ENUM('personal', 'company') | NOT NULL | 用户类型:personal(个人),company(企业) |
avatar_url |
VARCHAR(255) | DEFAULT NULL | 用户头像图片链接 |
is_active |
TINYINT(1) | DEFAULT 1 | 账号状态:0-禁用,1-激活 |
last_login_at |
TIMESTAMP | DEFAULT NULL | 最后登录时间 |
created_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 账号创建时间 |
updated_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 最后更新时间 |
说明:
- 此表是系统的认证基础。
user_type字段至关重要,它决定了用户在前端看到的界面和拥有的权限。 - 个人用户的详细信息在
resumes表中,企业用户的详细信息在companies表中。
2. 企业表 (companies)
此表存储企业用户的详细资料,与users表通过user_id关联。
| 字段名 | 数据类型 | 约束 | 描述 |
|---|---|---|---|
company_id |
BIGINT | PRIMARY KEY, AUTO_INCREMENT | 企业资料唯一标识ID |
user_id |
BIGINT | FOREIGN KEY (users.user_id), UNIQUE, NOT NULL |
关联的用户ID |
company_name |
VARCHAR(100) | NOT NULL | 公司全名(如:浙江科盟工贸有限公司) |
logo_url |
VARCHAR(255) | DEFAULT NULL | 公司Logo图片链接 |
industry |
VARCHAR(100) | DEFAULT NULL | 所属行业(如:制造业、互联网/IT) |
scale |
ENUM('少于50人','50-150人','150-500人','500-1000人','1000人以上') | DEFAULT NULL | 公司规模 |
nature |
ENUM('民营','国企','外资','合资','上市公司','事业单位','其他') | DEFAULT NULL | 企业性质 |
introduction |
TEXT | DEFAULT NULL | 公司简介 |
contact_phone |
VARCHAR(20) | DEFAULT NULL | 联系电话 |
contact_email |
VARCHAR(100) | DEFAULT NULL | 联系邮箱 |
website |
VARCHAR(255) | DEFAULT NULL | 公司官网 |
address_region |
VARCHAR(50) | DEFAULT NULL | 所在地区(省/市,如:浙江省金华市) |
address_detail |
VARCHAR(255) | DEFAULT NULL | 详细地址 |
is_verified |
TINYINT(1) | DEFAULT 0 | 企业认证状态:0-未认证,1-已认证 |
created_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 资料创建时间 |
updated_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 资料更新时间 |
说明:
user_id与users表关联,确保一个企业用户账号对应一份企业资料。is_verified字段用于标记企业是否经过平台审核认证,增强招聘信息的可信度。
3. 职位表 (jobs)
此表存储企业发布的所有招聘职位信息。
| 字段名 | 数据类型 | 约束 | 描述 |
|---|---|---|---|
job_id |
BIGINT | PRIMARY KEY, AUTO_INCREMENT | 职位唯一标识ID |
company_id |
BIGINT | FOREIGN KEY (companies.company_id), NOT NULL |
关联的企业ID |
job_title |
VARCHAR(100) | NOT NULL | 职位名称(如:销售助理、Java工程师) |
job_type |
VARCHAR(50) | DEFAULT NULL | 职位类型(如:全职、兼职、实习) |
industry |
VARCHAR(100) | DEFAULT NULL | 职位所属行业 |
salary_range |
VARCHAR(50) | DEFAULT NULL | 薪资范围(如:6-8k, 面议) |
min_salary |
DECIMAL(10,2) | DEFAULT NULL | 最低薪资(用于排序和筛选) |
max_salary |
DECIMAL(10,2) | DEFAULT NULL | 最高薪资(用于排序和筛选) |
experience_required |
VARCHAR(50) | DEFAULT NULL | 经验要求(如:经验不限,1-3年) |
education_required |
VARCHAR(50) | DEFAULT NULL | 学历要求(如:大专,本科) |
description |
TEXT | NOT NULL | 职位描述/要求 |
work_address |
VARCHAR(255) | DEFAULT NULL | 工作地点(如:浙江省金华市婺城区) |
recruitment_count |
INT | DEFAULT 1 | 招聘人数 |
is_urgent |
TINYINT(1) | DEFAULT 0 | 是否急聘:0-否,1-是 |
is_online |
TINYINT(1) | DEFAULT 1 | 职位状态:0-下线,1-上线 |
publish_date |
DATE | DEFAULT (CURRENT_DATE) | 发布日期 |
expiry_date |
DATE | DEFAULT NULL | 截止日期 |
created_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 创建时间 |
updated_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
说明:
company_id关联到companies表,确保每个职位都有对应的发布企业。min_salary和max_salary字段,用于后台对薪资进行精确的排序和范围筛选。is_online字段允许企业临时下线职位而不删除它。
4. 简历表 (resumes)
此表存储个人用户的简历详细信息。
| 字段名 | 数据类型 | 约束 | 描述 |
|---|---|---|---|
resume_id |
BIGINT | PRIMARY KEY, AUTO_INCREMENT | 简历唯一标识ID |
user_id |
BIGINT | FOREIGN KEY (users.user_id), NOT NULL |
关联的用户ID |
full_name |
VARCHAR(50) | DEFAULT NULL | 真实姓名(可能部分隐藏,如:张**) |
gender |
ENUM('男','女','保密') | DEFAULT '保密' | 性别 |
birth_year |
YEAR | DEFAULT NULL | 出生年份(用于计算年龄) |
current_region |
VARCHAR(100) | DEFAULT NULL | 当前所在地区 |
work_experience_years |
INT | DEFAULT 0 | 工作经验总年数 |
highest_education |
VARCHAR(50) | DEFAULT NULL | 最高学历 |
phone |
VARCHAR(20) | DEFAULT NULL | 联系电话 |
email |
VARCHAR(100) | DEFAULT NULL | 联系邮箱 |
avatar_url |
VARCHAR(255) | DEFAULT NULL | 简历照片 |
self_introduction |
TEXT | DEFAULT NULL | 自我简介/求职信 |
expected_industry |
VARCHAR(100) | DEFAULT NULL | 期望行业 |
expected_position |
VARCHAR(100) | DEFAULT NULL | 期望职位 |
expected_salary |
VARCHAR(50) | DEFAULT NULL | 期望薪资 |
expected_region |
VARCHAR(100) | DEFAULT NULL | 期望工作地区 |
updated_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 简历最后更新时间 |
created_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 简历创建时间 |
说明:
user_id与users表关联,一个用户可以拥有多份简历,但通常使用一份主简历。
8. 申请记录表 (applications)
记录用户投递简历、申请职位的核心记录,是连接用户、职位和简历的枢纽。 Hr可以通过申请记录查看求职者的简历信息。
| 字段名 | 数据类型 | 约束 | 描述 |
|---|---|---|---|
application_id |
BIGINT | PRIMARY KEY, AUTO_INCREMENT | 申请记录唯一标识ID |
user_id |
BIGINT | FOREIGN KEY (users.user_id), NOT NULL |
申请人用户ID |
job_id |
BIGINT | FOREIGN KEY (jobs.job_id), NOT NULL |
申请的职位ID |
resume_id |
BIGINT | FOREIGN KEY (resumes.resume_id), NOT NULL |
投递的简历ID |
status |
ENUM('pending', 'viewed', 'accepted', 'rejected', 'interview') | DEFAULT 'pending' | 申请状态:待处理/已查看/已通过/已拒绝/面试中 |
application_date |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP | 投递时间 |
viewed_at |
TIMESTAMP | NULL | 企业查看时间 |
processed_at |
TIMESTAMP | NULL | 企业处理时间 |
feedback |
TEXT | NULL | 企业反馈或备注 |
updated_at |
TIMESTAMP | DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 最后更新时间 |
说明:
- 该表是求职行为的核心记录,
user_id、job_id、resume_id组合应具有唯一性,防止重复投递 status字段完整跟踪了求职流程,方便个人用户和企业双方追踪进度- 时间戳字段精确记录了投递、查看和处理的关键时间节点,用于数据统计和分析
- 企业HR可以通过
viewed_at是否为NULL快速筛选出未查看的新申请