Files
flower-rain/docs/wzy/note3-tables.md
2025-12-07 18:07:16 +08:00

140 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第三次研讨会笔记
---
样例网址[金华人才网](https://jinhua.jialeijob.com),
markdown语法教程 [菜鸟教程](https://www.runoob.com)
## 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快速筛选出未查看的新申请