# 五、字段字典

> 由 `tools/schema_def.py`（唯一事实源）自动生成，与 `sql/01_schema.sql`、`json/*.json`、`csv/templates/*.csv` 严格一致。

- 表数量：**27**（含需求点名的 14 张核心表）
- 字段总数：**626**

每个字段给出 9 项属性：字段名 / 中文名 / 数据类型 / 是否必填 / 枚举·取值范围 / 字段说明 / 数据来源 / 更新频率 / 示例。

---

## 目录

1. [`data_sources`](#data_sources) 数据来源表 ⭐ —— 20 字段
2. [`countries`](#countries) 国家与地区表 —— 16 字段
3. [`cities`](#cities) 城市表 —— 21 字段
4. [`subjects`](#subjects) 学科分类表 —— 8 字段
5. [`ranking_providers`](#ranking_providers) 排名机构表 —— 14 字段
6. [`partners`](#partners) 合作机构表 —— 12 字段
7. [`score_metrics`](#score_metrics) 主观评分指标定义表 —— 10 字段
8. [`universities`](#universities) 高校主表 ⭐ —— 70 字段
9. [`departments`](#departments) 院系设置表 ⭐ —— 18 字段
10. [`programs`](#programs) 专业/项目表 ⭐ —— 33 字段
11. [`rankings`](#rankings) 排名表 ⭐ —— 20 字段
12. [`admissions`](#admissions) 录取要求表 ⭐ —— 56 字段
13. [`costs_scholarships`](#costs_scholarships) 费用与奖学金表 ⭐ —— 40 字段
14. [`china_student_metrics`](#china_student_metrics) 中国学生指标表 ⭐ —— 31 字段
15. [`collaborations`](#collaborations) 对外合作表 ⭐ —— 23 字段
16. [`research`](#research) 科研能力表 ⭐ —— 25 字段
17. [`careers_alumni`](#careers_alumni) 就业与校友表 ⭐ —— 31 字段
18. [`campus_life_location`](#campus_life_location) 生活与地理表 ⭐ —— 37 字段
19. [`scores`](#scores) 主观评分表 ⭐ —— 22 字段
20. [`accreditations`](#accreditations) 认证与学位认可度表 —— 18 字段
21. [`visa_immigration`](#visa_immigration) 签证与移民政策表 —— 25 字段
22. [`institution_profile`](#institution_profile) 院校发展与财务健康表 —— 23 字段
23. [`update_logs`](#update_logs) 更新日志表 ⭐ —— 16 字段
24. [`data_conflicts`](#data_conflicts) 数据冲突表 —— 15 字段
25. [`admin_users`](#admin_users) 后台账号表 —— 9 字段
26. [`favorites`](#favorites) 收藏与对比篮 —— 5 字段
27. [`search_logs`](#search_logs) 搜索行为日志表 —— 8 字段

> ⭐ 标记 = 需求文档点名必须存在的表。

---

## `data_sources`

**数据来源表** —— 记录每一条外部数据的出处、可信度、采集方式与合规状态，是全库可追溯性的锚点。

**关系**：
- 1:N —— 被 universities / programs / rankings / admissions 等所有业务表通过 source_id 引用

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `source_id` | 来源ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1024 |
| `source_type` | 来源类型 | `VARCHAR(24)` | 是 | 官网\|政府\|排名\|就业报告\|第三方调研\|学术数据库\|论坛社媒\|采购\|人工调研 | 来源大类，决定可信度基线：官网>政府>排名>就业报告>第三方调研>论坛社媒 | 采集流程 | 实时 | 官网 |
| `source_url` | 来源URL | `VARCHAR(1000)` | 是 | http(s)://... | 原始来源链接，必须精确到可复核的页面 | 采集流程 | 实时 | https://www.imperial.ac.uk/study/fees-and-funding/ |
| `title` | 来源标题 | `VARCHAR(255)` | 否 | - | 来源页面/文件标题 | 页面 | 实时 | Tuition fees 2025-26 |
| `publisher` | 发布方 | `VARCHAR(160)` | 否 | - | 发布机构全称 | 页面 | 实时 | Imperial College London |
| `publisher_type` | 发布方性质 | `VARCHAR(24)` | 否 | 院校\|政府\|国际组织\|排名机构\|行业协会\|媒体\|其他 | 发布方性质 | 人工判定 | 按需 | 院校 |
| `credibility` | 可信度等级 | `ENUM('A','B','C')` | 是 | A\|B\|C | A=官方一手；B=权威二手（排名机构/政府统计）；C=三方或社区，需交叉验证 | 来源优先级规则 | 按需 | A |
| `credibility_score` | 可信度得分 | `TINYINT UNSIGNED` | 否 | 0-100 | 可信度量化分，A≥85，B 60-84，C<60 | 来源优先级规则 | 按需 | 95 |
| `license` | 使用许可 | `VARCHAR(120)` | 否 | - | 内容许可/版权状态 | 网站条款 | 按需 | © Imperial College London |
| `robots_ok` | robots允许 | `TINYINT(1)` | 否 | 0\|1 | 采集前已核对 robots.txt 且允许抓取：1=允许 | robots.txt | 每次采集前 | 1 |
| `terms_ok` | 条款允许 | `TINYINT(1)` | 否 | 0\|1 | 不违反网站服务条款：1=允许 | 网站条款 | 每次采集前 | 1 |
| `contains_personal_data` | 含个人信息 | `TINYINT(1)` | 是 | 0\|1 | 是否含个人信息；为1时禁止入库（PIPL/GDPR） | 合规审查 | 每次采集 | 0 |
| `collected_at` | 采集时间 | `DATETIME` | 是 | YYYY-MM-DD HH:MM:SS | 实际抓取/录入时间 | 采集系统 | 实时 | 2025-09-01 10:00:00 |
| `as_of` | 来源基准日 | `DATE` | 否 | YYYY-MM-DD | 来源页面标注的数据口径日期 | 页面 | 按来源 | 2025-08-15 |
| `collected_by` | 采集人 | `VARCHAR(64)` | 否 | - | 采集/录入责任人账号 | 内部 | 实时 | data_editor_01 |
| `snapshot_hash` | 快照哈希 | `CHAR(64)` | 否 | SHA-256 | 原始页面快照的 SHA-256，用于变更比对与留痕 | 采集系统 | 每次采集 | e3b0c44298fc1c149afbf4c8996fb924... |
| `snapshot_path` | 快照路径 | `VARCHAR(500)` | 否 | - | 快照文件存储路径 | 采集系统 | 每次采集 | /snapshots/2025/09/icl_fees.html |
| `is_primary` | 是否一手 | `TINYINT(1)` | 否 | 0\|1 | 1=一手来源（官网/政府原文） | 人工判定 | 按需 | 1 |
| `notes` | 备注 | `TEXT` | 否 | - | 采集异常、口径差异等说明 | 采集人 | 按需 | 学费含学院附加费 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `countries`

**国家与地区表** —— 留学目的国家/地区字典。香港、澳门、台湾均标注为中国所属地区（is_china_region=1）。

**关系**：
- 1:N —— countries 1 : N cities；countries 1 : N universities；countries 1 : N visa_immigration

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `country_code` | 国家/地区代码 | `CHAR(2)` | 是 | ISO 3166-1 alpha-2：GB/US/SG/AU/CA/NZ/DE/FR/JP/KR/HK/MO/TW... | 主键，ISO 3166-1 二位字母码 | ISO | 按需 | GB |
| `name_zh` | 中文名称 | `VARCHAR(64)` | 是 | - | 国家/地区中文名 | 外交部 | 按需 | 英国 |
| `name_en` | 英文名称 | `VARCHAR(64)` | 是 | - | 国家/地区英文名 | ISO | 按需 | United Kingdom |
| `region` | 所属大洲 | `VARCHAR(24)` | 是 | 亚洲\|欧洲\|北美洲\|大洋洲\|其他 | 所属大洲 | 人工维护 | 按需 | 欧洲 |
| `is_china_region` | 是否中国地区 | `TINYINT(1)` | 是 | 0\|1 | 1=中国香港/中国澳门/中国台湾等中国所属地区 | 主权事实 | 永不变更 | 0 |
| `sovereign_country` | 主权国家 | `VARCHAR(64)` | 是 | - | 所属主权国家（中国地区填"中国"） | 主权事实 | 永不变更 | 英国 |
| `currency_code` | 币种 | `CHAR(3)` | 是 | ISO 4217：GBP/USD/SGD/AUD/CAD/CNY... | 主要流通货币 ISO 4217 代码 | ISO | 每年 | GBP |
| `language_primary` | 主要语言 | `VARCHAR(40)` | 否 | - | 主要教学/生活语言 | 政府 | 按需 | 英语 |
| `study_dest_popularity` | 留学热度 | `DECIMAL(5,2)` | 否 | 0-100 | 中国学生留学目的地热度指数（主观，见 scores 口径） | 问卷+搜索指数 | 每年 | 92.50 |
| `tuition_index` | 学费指数 | `DECIMAL(6,2)` | 否 | 0-999 | 相对学费水平指数，100=基准 | 第三方调研 | 每年 | 180.00 |
| `living_index` | 生活费指数 | `DECIMAL(6,2)` | 否 | 0-999 | 相对生活成本指数，100=基准 | Numbeo/经济学人 | 每年 | 165.00 |
| `visa_difficulty` | 签证难度 | `DECIMAL(5,2)` | 否 | 0-100 | 学生签证获签难度主观分 | 使馆公告+经验 | 每季度 | 35.00 |
| `policy_as_of` | 政策基准日 | `DATE` | 否 | YYYY-MM-DD | 国家层面政策数据基准日 | 使馆/移民局 | 每季度 | 2025-07-01 |
| `data_confidence` | 数据可信度 | `ENUM('high','medium','low')` | 否 | high\|medium\|low | 本行整体数据可信度 | 复核员 | 每次更新 | high |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 来源 | 内部 | 实时 | 1 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `cities`

**城市表** —— 院校所在城市，承载气候、安全、交通、物价、华人社区等地理生活类指标。

**关系**：
- 1:N —— cities 1 : N universities；cities 1 : N campus_life_location

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `city_id` | 城市ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 101 |
| `country_code` | 国家代码 | `CHAR(2)` | 是 | countries.country_code | 所属国家/地区 | ISO | 按需 | GB |
| `name_zh` | 城市中文名 | `VARCHAR(64)` | 是 | - | 城市中文名 | 人工维护 | 按需 | 伦敦 |
| `name_en` | 城市英文名 | `VARCHAR(64)` | 是 | - | 城市英文名 | GeoNames | 按需 | London |
| `state_province` | 州/省 | `VARCHAR(64)` | 否 | - | 所属州/省/郡 | GeoNames | 按需 | Greater London |
| `latitude` | 纬度 | `DECIMAL(9,6)` | 否 | -90~90 | 纬度，用于地图与距离计算 | GeoNames | 按需 | 51.507400 |
| `longitude` | 经度 | `DECIMAL(9,6)` | 否 | -180~180 | 经度 | GeoNames | 按需 | -0.127800 |
| `timezone` | 时区 | `VARCHAR(48)` | 否 | IANA：Europe/London | IANA 时区 | tzdb | 每年 | Europe/London |
| `climate_type` | 气候类型 | `VARCHAR(32)` | 否 | 温带海洋性\|地中海\|大陆性\|亚热带\|热带\|寒带\|高原 | 柯本气候分类简述 | 气象数据 | 按需 | 温带海洋性 |
| `safety_index` | 城市安全指数 | `DECIMAL(5,2)` | 否 | 0-100 | 综合安全指数，越高越安全 | Numbeo/政府统计 | 每年 | 62.30 |
| `crime_rate_per_100k` | 犯罪率 | `DECIMAL(8,2)` | 否 | 0-99999 | 每十万人犯罪数，口径见来源 | 警方公开数据 | 每年 | 78.40 |
| `cost_of_living_index` | 生活成本指数 | `DECIMAL(6,2)` | 否 | 0-999 | 生活成本指数，100=基准城市 | Numbeo | 每年 | 168.00 |
| `rent_monthly_avg` | 月均租金 | `DECIMAL(10,2)` | 否 | >=0 | 市中心一居室月均租金 | Numbeo/租房平台 | 每季度 | 2100.00 |
| `rent_currency` | 租金币种 | `CHAR(3)` | 否 | ISO 4217 | 租金币种 | ISO | 每年 | GBP |
| `public_transport_score` | 公共交通评分 | `DECIMAL(5,2)` | 否 | 0-100 | 公共交通便利度 | 城市交通部门 | 每年 | 88.00 |
| `airport_code` | 主要机场 | `CHAR(3)` | 否 | IATA：LHR | 最近主要机场三字码 | IATA | 按需 | LHR |
| `cn_community_size` | 华人社区规模 | `VARCHAR(20)` | 否 | 很大\|较大\|一般\|较小\|很小 | 华人社区规模定性分级 | 人工调研+ census | 每年 | 很大 |
| `cn_grocery_count` | 华人超市数量 | `INT UNSIGNED` | 否 | >=0 | 主要华人超市/中超数量 | 地图POI | 每年 | 120 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 城市数据基准日 | 来源 | 每年 | 2025-06-30 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 来源 | 内部 | 实时 | 2 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `subjects`

**学科分类表** —— 统一学科分类（对接 QS/THE 学科排名口径 + 中国本科专业目录），支持学科排名与专业匹配。

**关系**：
- 1:N —— subjects 1 : N programs；subjects 1 : N rankings（学科排名）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `subject_code` | 学科代码 | `VARCHAR(24)` | 是 | CS\|ENG\|BUS\|MED\|LAW\|EDU\|ART\|SCI\|SOC\|AGRI | 主键，学科大类代码 | 人工维护 | 按需 | CS |
| `parent_code` | 父学科 | `VARCHAR(24)` | 否 | subjects.subject_code | 一级学科代码，NULL 表示顶层 | 人工维护 | 按需 | ENG |
| `name_zh` | 学科中文名 | `VARCHAR(80)` | 是 | - | 学科中文名 | 教育部学科目录 | 每年 | 计算机科学 |
| `name_en` | 学科英文名 | `VARCHAR(120)` | 是 | - | 学科英文名 | QS/THE | 每年 | Computer Science |
| `discipline_group` | 学科门类 | `VARCHAR(40)` | 否 | 自然科学\|工程技术\|生命科学\|社会科学\|人文艺术\|商科\|医学\|教育\|交叉 | 学科门类 | 人工维护 | 每年 | 工程技术 |
| `cn_catalog_code` | 中国目录代码 | `VARCHAR(20)` | 否 | - | 中国本科/研究生专业目录代码 | 教育部 | 每年 | 0812 |
| `is_stem` | 是否STEM | `TINYINT(1)` | 否 | 0\|1 | 1=属于 STEM 领域（影响 OPT 时长） | DHS STEM 清单 | 每年 | 1 |
| `sort_order` | 排序 | `SMALLINT UNSIGNED` | 否 | >=0 | 前端展示排序 | 人工 | 按需 | 10 |

## `ranking_providers`

**排名机构表** —— QS / THE / US News / ARWU / 本地排名 / 学科排名等排名体系及其方法论版本。

**关系**：
- 1:N —— ranking_providers 1 : N rankings（同一机构可发布多年/多学科）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `provider_code` | 排名机构代码 | `VARCHAR(16)` | 是 | QS\|THE\|USNEWS\|ARWU\|LOCAL\|SUBJECT\|FT\|MACLEANS\|COMPLETE | 主键 | 人工维护 | 按需 | QS |
| `name_zh` | 排名中文名 | `VARCHAR(80)` | 是 | - | 排名体系中文名 | 官方 | 每年 | QS世界大学排名 |
| `name_en` | 排名英文名 | `VARCHAR(120)` | 否 | - | 排名体系英文名 | 官方 | 每年 | QS World University Rankings |
| `publisher` | 发布方 | `VARCHAR(120)` | 否 | - | 发布机构 | 官方 | 每年 | Quacquarelli Symonds |
| `official_url` | 官方网址 | `VARCHAR(500)` | 否 | http(s):// | 排名官方主页 | 官方 | 每年 | https://www.topuniversities.com/ |
| `methodology_url` | 方法论网址 | `VARCHAR(500)` | 否 | http(s):// | 方法论说明页 | 官方 | 每年 | https://support.qs.com/... |
| `methodology_version` | 方法论版本 | `VARCHAR(40)` | 否 | - | 当前方法论版本/年份 | 官方 | 每年 | 2024-v1 |
| `indicators_json` | 指标权重 | `JSON` | 否 | JSON 对象 | 各指标及权重，例：{"学术声誉":40,"雇主声誉":10} | 官方方法论 | 每年 | {"academic_reputation":40,"employer_reputation":10} |
| `publish_cycle` | 发布周期 | `VARCHAR(20)` | 否 | 每年\|每两年\|不定期 | 发布周期 | 官方 | 每年 | 每年 |
| `scope` | 排名范围 | `VARCHAR(20)` | 否 | 全球\|亚洲\|本国\|学科 | 排名覆盖口径 | 官方 | 每年 | 全球 |
| `credibility` | 可信度 | `ENUM('A','B','C')` | 否 | A\|B\|C | 排名体系可信度 | 人工判定 | 每年 | B |
| `first_published_year` | 首发年份 | `YEAR` | 否 | 1900-2100 | 首次发布年份 | 官方 | 按需 | 2004 |
| `notes` | 方法论差异说明 | `TEXT` | 否 | - | 与其他排名的口径差异提示（用于排名波动归因） | 研究员 | 每年 | 雇主声誉权重仅10%，偏学术 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `partners`

**合作机构表** —— 对外合作的对端机构：中国高校、海外高校、企业、政府、基金会、中学。与 universities 构成多对多。

**关系**：
- M:N —— partners M : N universities，通过 collaborations 关联表实现

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `partner_id` | 合作机构ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `name_zh` | 机构中文名 | `VARCHAR(160)` | 是 | - | 机构中文全称 | 机构官网 | 按需 | 清华大学 |
| `name_en` | 机构英文名 | `VARCHAR(200)` | 否 | - | 机构英文全称 | 机构官网 | 按需 | Tsinghua University |
| `partner_type` | 机构类型 | `VARCHAR(24)` | 是 | 高校\|企业\|政府\|研究机构\|基金会\|中学\|国际组织 | 对端机构类型 | 机构官网 | 按需 | 高校 |
| `country_code` | 所属国家 | `CHAR(2)` | 否 | countries.country_code | 机构所在国家/地区 | ISO | 按需 | CN |
| `city` | 所在城市 | `VARCHAR(64)` | 否 | - | 机构所在城市 | 机构官网 | 按需 | 北京 |
| `tier` | 院校层次 | `VARCHAR(24)` | 否 | 985\|211\|双一流\|省重点\|普通\|海外名校\|其他 | 中国高校层次标签 | 教育部名单 | 每年 | 985 |
| `is_chinese_mainland` | 是否中国大陆 | `TINYINT(1)` | 否 | 0\|1 | 1=中国大陆机构 | 主权事实 | 永不变更 | 1 |
| `website` | 官网 | `VARCHAR(500)` | 否 | http(s):// | 机构官网 | 机构官网 | 每年 | https://www.tsinghua.edu.cn/ |
| `notes` | 备注 | `TEXT` | 否 | - | 补充说明 | 人工 | 按需 | C9联盟 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 来源 | 内部 | 实时 | 3 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `score_metrics`

**主观评分指标定义表** —— 定义 0-100 主观评分的指标体系、维度与默认权重，是 scores 表的元数据。

**关系**：
- 1:N —— score_metrics 1 : N scores（同一指标可给多校多年打分）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `metric_code` | 指标代码 | `VARCHAR(32)` | 是 | CHINA_PREFERENCE\|RESEARCH_CAPABILITY\|FUTURE_OUTLOOK\|ALUMNI_STRENGTH\|COLLABORATION | 主键，主观指标代码 | 人工维护 | 按需 | CHINA_PREFERENCE |
| `name_zh` | 指标中文名 | `VARCHAR(64)` | 是 | - | 指标中文名 | 人工维护 | 按需 | 中国留学生喜好度 |
| `name_en` | 指标英文名 | `VARCHAR(120)` | 否 | - | 指标英文名 | 人工维护 | 按需 | Chinese Student Preference |
| `description` | 指标定义 | `TEXT` | 是 | - | 指标口径定义与计算逻辑说明 | 方法论文档 | 每年 | 衡量中国学生对该校的整体偏好程度 |
| `dimension_weights` | 维度默认权重 | `JSON` | 是 | JSON 对象，权重合计=1 | 各评分维度及默认权重，可逐校微调 | 方法论文档 | 每年 | {"申请热度":0.20,"搜索社交讨论":0.10,"就业回报":0.20,"安全生活":0.15,"费用性价比":0.15,"排名声誉":0.10,"中介推荐度":0.10} |
| `scale_min` | 分值下限 | `TINYINT UNSIGNED` | 是 | 固定0 | 量表下限 | 方法论 | 按需 | 0 |
| `scale_max` | 分值上限 | `TINYINT UNSIGNED` | 是 | 固定100 | 量表上限 | 方法论 | 按需 | 100 |
| `review_cycle_months` | 复评周期(月) | `TINYINT UNSIGNED` | 否 | 1-60 | 复评周期 | SOP | 按需 | 12 |
| `owner_role` | 责任角色 | `VARCHAR(32)` | 否 | - | 指标责任人角色 | SOP | 按需 | 学科研究员 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `universities`

**高校主表** —— 每所高校唯一一条记录，是全部业务数据的汇聚点。主键 school_id 采用「国家码-城市码-序号」编码。

**关系**：
- 1:N —— universities 1:N departments / programs / rankings / admissions /
- costs_scholarships / china_student_metrics / collaborations / research /
- careers_alumni / scores / accreditations / institution_profile；
- 1:1 —— universities 1:1 campus_life_location；
- M:N —— 通过 collaborations 与 partners 多对多

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `school_id` | 学校唯一ID | `CHAR(16)` | 是 | ^[A-Z]{2,3}-[A-Z0-9]{2,6}-\d{3,6}$ | 主键，全局唯一，格式：国家码-城市码-序号 | 内部编码规则 | 一次性 | GB-LON-0001 |
| `name_zh` | 高校中文名 | `VARCHAR(160)` | 是 | - | 官方/通用中文校名 | 学校官网/教育部 | 每年 | 帝国理工学院 |
| `name_en` | 高校英文名 | `VARCHAR(220)` | 是 | - | 官方英文校名 | 学校官网 | 每年 | Imperial College London |
| `local_name` | 本地语言名 | `VARCHAR(220)` | 否 | - | 当地语言校名（如德语/日语） | 学校官网 | 每年 | - |
| `alias_zh` | 中文别名/简称 | `VARCHAR(160)` | 否 | - | 常用简称、历史名，多个用\|分隔 | 人工维护 | 按需 | 帝国理工\|ICL |
| `alias_en` | 英文别名/简称 | `VARCHAR(200)` | 否 | - | 英文简称/缩写 | 学校官网 | 按需 | Imperial\|ICL |
| `country_code` | 国家/地区 | `CHAR(2)` | 是 | countries.country_code | 所属国家/地区 | 学校官网 | 按需 | GB |
| `city_id` | 城市 | `INT UNSIGNED` | 是 | cities.city_id | 主校区所在城市 | 学校官网 | 按需 | 101 |
| `state_province` | 州/省 | `VARCHAR(64)` | 否 | - | 所属州/省 | 学校官网 | 按需 | Greater London |
| `campus_address` | 校区地址 | `VARCHAR(300)` | 否 | - | 主校区地址 | 学校官网 | 每年 | South Kensington Campus, London SW7 2AZ |
| `latitude` | 纬度 | `DECIMAL(9,6)` | 否 | -90~90 | 主校区纬度 | GeoNames | 按需 | 51.498800 |
| `longitude` | 经度 | `DECIMAL(9,6)` | 否 | -180~180 | 主校区经度 | GeoNames | 按需 | -0.174900 |
| `school_type` | 学校性质 | `VARCHAR(20)` | 是 | 公立\|私立\|公私合营 | 公立/私立 | 学校官网/教育部 | 每年 | 公立 |
| `institution_nature` | 院校类型 | `VARCHAR(32)` | 是 | 研究型\|应用型\|文理学院\|艺术院校\|理工学院\|医科大学\|商学院\|师范大学\|综合大学\|社区学院\|理工学院( Institut)\|其他 | 院校办学定位类型，可多选时用\|分隔 | 学校官网 | 每年 | 研究型 |
| `is_public` | 是否公立 | `TINYINT(1)` | 是 | 0\|1 | 1=公立 | 学校官网 | 每年 | 1 |
| `is_research_intensive` | 是否研究型 | `TINYINT(1)` | 否 | 0\|1 | 1=研究密集型 | 学校官网/排名 | 每年 | 1 |
| `is_liberal_arts` | 是否文理学院 | `TINYINT(1)` | 否 | 0\|1 | 1=文理学院 | 学校官网 | 每年 | 0 |
| `is_art_school` | 是否艺术院校 | `TINYINT(1)` | 否 | 0\|1 | 1=艺术/设计/音乐院校 | 学校官网 | 每年 | 0 |
| `is_vocational` | 是否应用型 | `TINYINT(1)` | 否 | 0\|1 | 1=应用型/职业导向 | 学校官网 | 每年 | 0 |
| `has_religious_affiliation` | 是否宗教背景 | `TINYINT(1)` | 是 | 0\|1 | 1=有宗教背景 | 学校官网 | 每年 | 0 |
| `religious_affiliation` | 宗教背景 | `VARCHAR(48)` | 否 | 基督教\|天主教\|犹太教\|伊斯兰教\|佛教\|无\|其他 | 具体宗教归属 | 学校官网 | 每年 | 无 |
| `founded_year` | 建校年份 | `SMALLINT UNSIGNED` | 否 | 1000-2100 | 建校年份 | 学校官网 | 按需 | 1907 |
| `moe_verified` | 教育部涉外监管网 | `VARCHAR(20)` | 是 | 已认证\|未列入\|待核实 | 中国教育部涉外监管网名单状态 | jsj.moe.gov.cn | 每年 | 已认证 |
| `cscse_recognized` | 中留服认证 | `VARCHAR(20)` | 是 | 可认证\|不予认证\|暂不认证\|待核实 | 中国留学服务中心学历学位认证结论 | zwfw.cscse.edu.cn | 每季度 | 可认证 |
| `accreditation_status` | 综合认证状态 | `VARCHAR(20)` | 是 | 有效\|有条件\|暂停\|失效\|待核实 | 院校级认证综合状态（冗余自 accreditations） | 认证机构 | 每年 | 有效 |
| `degree_recognition_note` | 学位认可度说明 | `TEXT` | 否 | - | 回国认证/就业认可度的补充说明与风险提示 | 中留服/用人单位调研 | 每年 | 全日制在校学习满180天可正常认证 |
| `total_students` | 学生总数 | `INT UNSIGNED` | 否 | >=0 | 全校学生总数 | 学校官网/HESA/IPEDS | 每年 | 22000 |
| `undergrad_count` | 本科生数 | `INT UNSIGNED` | 否 | >=0 | 本科在校生数 | 学校官网 | 每年 | 11000 |
| `grad_count` | 研究生数 | `INT UNSIGNED` | 否 | >=0 | 硕士+博士在校生数 | 学校官网 | 每年 | 11000 |
| `phd_count` | 博士生数 | `INT UNSIGNED` | 否 | >=0 | 博士在校生数 | 学校官网 | 每年 | 4500 |
| `international_student_count` | 国际生数 | `INT UNSIGNED` | 否 | >=0 | 国际学生总数 | 学校官网 | 每年 | 13000 |
| `international_student_pct` | 国际生比例 | `DECIMAL(5,2)` | 否 | 0-100 | 国际学生占比（%），必须<=100 | 学校官网 | 每年 | 59.00 |
| `faculty_count` | 教师总数 | `INT UNSIGNED` | 否 | >=0 | 专任教师数 | 学校官网 | 每年 | 4200 |
| `student_faculty_ratio` | 师生比 | `DECIMAL(6,2)` | 否 | 0-200 | 生师比，如 11.30 表示 11.3:1 | 学校官网 | 每年 | 11.30 |
| `avg_class_size` | 平均班级规模 | `SMALLINT UNSIGNED` | 否 | 0-1000 | 平均班级人数 | Common Data Set | 每年 | 25 |
| `class_size_under_20_pct` | 小班比例 | `DECIMAL(5,2)` | 否 | 0-100 | 20人以下班级占比 | Common Data Set | 每年 | 58.00 |
| `campus_count` | 校区数量 | `TINYINT UNSIGNED` | 否 | >=0 | 校区总数 | 学校官网 | 按需 | 5 |
| `qs_rank` | QS排名 | `SMALLINT UNSIGNED` | 否 | 1-3000 | 最新 QS 世界排名值 | QS | 每年 | 2 |
| `qs_rank_year` | QS排名年份 | `YEAR` | 否 | 1990-2100 | QS 排名对应年份 | QS | 每年 | 2025 |
| `the_rank` | THE排名 | `SMALLINT UNSIGNED` | 否 | 1-3000 | 最新 THE 世界排名值 | THE | 每年 | 9 |
| `the_rank_year` | THE排名年份 | `YEAR` | 否 | 1990-2100 | THE 排名对应年份 | THE | 每年 | 2025 |
| `usnews_rank` | US News排名 | `SMALLINT UNSIGNED` | 否 | 1-3000 | 最新 US News 全球排名值 | US News | 每年 | 12 |
| `usnews_rank_year` | US News年份 | `YEAR` | 否 | 1990-2100 | US News 排名年份 | US News | 每年 | 2025 |
| `arwu_rank` | ARWU排名 | `SMALLINT UNSIGNED` | 否 | 1-2000 | 最新软科世界排名值 | ARWU | 每年 | 25 |
| `arwu_rank_year` | ARWU排名年份 | `YEAR` | 否 | 1990-2100 | ARWU 排名年份 | ARWU | 每年 | 2024 |
| `domestic_rank` | 本国排名 | `SMALLINT UNSIGNED` | 否 | 1-1000 | 本国/本地权威排名 | 本地排名机构 | 每年 | 3 |
| `domestic_rank_source` | 本国排名来源 | `VARCHAR(60)` | 否 | - | 本国排名机构名称 | 本地排名机构 | 每年 | The Complete University Guide |
| `annual_tuition_min` | 最低年学费 | `DECIMAL(12,2)` | 否 | >=0 | 国际生最低年学费（原币） | 学校官网 | 每年 | 28000.00 |
| `annual_tuition_max` | 最高年学费 | `DECIMAL(12,2)` | 否 | >=0 | 国际生最高年学费（原币），必须>=min | 学校官网 | 每年 | 52000.00 |
| `currency` | 币种 | `CHAR(3)` | 否 | ISO 4217 | 费用币种 | 学校官网 | 每年 | GBP |
| `total_budget_est` | 年度总预算估算 | `DECIMAL(12,2)` | 否 | >=0 | 学费+生活费年度总预算（原币） | 测算 | 每年 | 68000.00 |
| `total_budget_cny` | 总预算折人民币 | `DECIMAL(12,2)` | 否 | >=0 | 按采集时汇率折算人民币 | 汇率API | 每季度 | 628000.00 |
| `acceptance_rate` | 整体录取率 | `DECIMAL(5,2)` | 否 | 0-100 | 全校整体录取率（%） | Common Data Set/HESA | 每年 | 14.00 |
| `employment_rate` | 整体就业率 | `DECIMAL(5,2)` | 否 | 0-100 | 毕业生整体就业率（%） | 就业报告 | 每年 | 93.00 |
| `cn_student_count` | 中国学生数 | `INT UNSIGNED` | 否 | >=0 | 中国籍在校生数 | 学校官网/HESA | 每年 | 3200 |
| `cn_student_pct` | 中国学生占比 | `DECIMAL(5,2)` | 否 | 0-100 | 中国学生占全校比例（%），应<=国际生比例 | 学校官网 | 每年 | 14.50 |
| `preference_score` | 中国留学生喜好度 | `DECIMAL(5,2)` | 否 | 0-100 或 NULL | 主观指标冗余值，详见 scores 表；无法确认填 NULL | scores表 | 每年 | 88.40 |
| `website` | 官网 | `VARCHAR(500)` | 是 | http(s):// | 学校官网首页 | 学校官网 | 每年 | https://www.imperial.ac.uk/ |
| `admissions_url` | 招生页 | `VARCHAR(500)` | 否 | http(s):// | 国际生招生页 | 学校官网 | 每年 | https://www.imperial.ac.uk/study/ |
| `logo_url` | 校徽URL | `VARCHAR(500)` | 否 | http(s):// | 校徽图片地址 | 学校官网 | 按需 | /assets/logo/icl.png |
| `intro_zh` | 中文简介 | `TEXT` | 否 | - | 300字以内中文简介 | 人工撰写 | 每年 | 帝国理工学院是英国顶尖研究型大学… |
| `data_confidence` | 数据可信度 | `ENUM('high','medium','low')` | 是 | high\|medium\|low | 本行整体可信度 | 复核员 | 每次更新 | high |
| `data_completeness` | 数据完整度 | `DECIMAL(5,2)` | 否 | 0-100 | 由质量校验脚本计算的数据完整度得分 | 质量脚本 | 每日 | 86.50 |
| `verification_status` | 审核状态 | `VARCHAR(20)` | 是 | draft\|pending_review\|verified\|published\|archived\|deprecated | 数据流转状态 | 审核流程 | 实时 | published |
| `data_notes` | 数据备注 | `TEXT` | 否 | - | 数据口径、冲突、待核实事项说明 | 复核员 | 按需 | 中国学生数来自HESA 2023/24 |
| `is_deleted` | 逻辑删除 | `TINYINT(1)` | 是 | 0\|1 | 1=已逻辑删除，默认0 | 系统 | 实时 | 0 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `departments`

**院系设置表** —— 高校下设学院/学部/系，是专业与项目的归属单元；支持自关联形成院-系两级结构。

**关系**：
- N:1 —— departments N:1 universities；1:N —— departments 1:N programs；自关联：院系层级树

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `dept_id` | 院系ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 学校官网 | 按需 | GB-LON-0001 |
| `parent_dept_id` | 上级院系 | `INT UNSIGNED` | 否 | departments.dept_id | 上级学部/学院，NULL 表示顶层 | 学校官网 | 按需 | 0 |
| `name_zh` | 院系中文名 | `VARCHAR(160)` | 是 | - | 院系中文名 | 学校官网 | 每年 | 工程学院 |
| `name_en` | 院系英文名 | `VARCHAR(200)` | 是 | - | 院系英文名 | 学校官网 | 每年 | Faculty of Engineering |
| `dept_type` | 院系类型 | `VARCHAR(16)` | 是 | 学部\|学院\|系\|研究所\|中心\|学群 | 机构层级类型 | 学校官网 | 每年 | 学院 |
| `subject_code` | 主学科 | `VARCHAR(24)` | 否 | subjects.subject_code | 主要学科归属 | 人工映射 | 每年 | ENG |
| `established_year` | 设立年份 | `SMALLINT UNSIGNED` | 否 | 1000-2100 | 院系设立年份 | 学校官网 | 按需 | 1907 |
| `faculty_count` | 教师数 | `INT UNSIGNED` | 否 | >=0 | 该院系专任教师数 | 学校官网 | 每年 | 800 |
| `student_count` | 学生数 | `INT UNSIGNED` | 否 | >=0 | 该院系在校生数 | 学校官网 | 每年 | 6000 |
| `phd_programs_count` | 博士点数 | `SMALLINT UNSIGNED` | 否 | >=0 | 博士项目数量 | 学校官网 | 每年 | 30 |
| `is_cn_student_popular` | 中国学生热门 | `TINYINT(1)` | 否 | 0\|1 | 1=中国学生高度集中的院系 | 中国学生调研 | 每年 | 1 |
| `website` | 院系官网 | `VARCHAR(500)` | 否 | http(s):// | 院系官网 | 学校官网 | 每年 | https://www.imperial.ac.uk/engineering/ |
| `notes` | 备注 | `TEXT` | 否 | - | 补充说明 | 人工 | 按需 | 含10个系 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `programs`

**专业/项目表** —— 具体可申请的项目（本科/硕士/博士/预科/语言/交换），是录取要求与费用的主要挂载对象。

**关系**：
- N:1 —— programs N:1 universities；N:1 —— programs N:1 departments；1:N —— programs 1:N admissions / costs_scholarships

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `program_id` | 项目ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 学校官网 | 按需 | GB-LON-0001 |
| `dept_id` | 所属院系 | `INT UNSIGNED` | 否 | departments.dept_id | 所属院系 | 学校官网 | 按需 | 1 |
| `name_zh` | 项目中文名 | `VARCHAR(200)` | 是 | - | 项目中文名 | 学校官网 | 每年 | 计算机科学硕士 |
| `name_en` | 项目英文名 | `VARCHAR(240)` | 是 | - | 项目官方英文名 | 学校官网 | 每年 | MSc Computing Science |
| `program_code` | 项目代码 | `VARCHAR(40)` | 否 | - | 学校内部项目代码/UCAS码 | 学校官网 | 每年 | MSC-CS-01 |
| `degree_level` | 学历层次 | `VARCHAR(16)` | 是 | 预科\|语言课程\|本科\|硕士\|博士\|交换\|证书\|文凭\|非学位 | 项目层次 | 学校官网 | 每年 | 硕士 |
| `program_type` | 项目类型 | `VARCHAR(20)` | 否 | 授课型\|研究型\|混合型\|双学位\|联合培养\|在线\|远程 | 培养方式 | 学校官网 | 每年 | 授课型 |
| `subject_code` | 学科代码 | `VARCHAR(24)` | 否 | subjects.subject_code | 学科分类 | 人工映射 | 每年 | CS |
| `discipline_code` | 专业目录代码 | `VARCHAR(20)` | 否 | - | 中国研究生/本科专业目录代码 | 教育部 | 每年 | 0812 |
| `duration_months` | 学制(月) | `SMALLINT UNSIGNED` | 否 | 1-120 | 标准学制（月） | 学校官网 | 每年 | 12 |
| `study_mode` | 学习方式 | `VARCHAR(16)` | 否 | 全日制\|非全日制\|在线\|混合 | 学习方式 | 学校官网 | 每年 | 全日制 |
| `teaching_language` | 授课语言 | `VARCHAR(60)` | 否 | - | 主要授课语言 | 学校官网 | 每年 | 英语 |
| `intake_seasons` | 开学季 | `VARCHAR(40)` | 否 | 春季\|夏季\|秋季\|滚动\|春秋\|三季 | 入学季节，多值用\|分隔 | 学校官网 | 每年 | 秋季 |
| `is_stem` | 是否STEM | `TINYINT(1)` | 否 | 0\|1 | 1=STEM 项目（影响美国 OPT 延期） | DHS STEM 清单 | 每年 | 1 |
| `is_honours` | 是否荣誉学位 | `TINYINT(1)` | 否 | 0\|1 | 1=荣誉学士 | 学校官网 | 每年 | 0 |
| `is_joint_degree` | 是否联合学位 | `TINYINT(1)` | 否 | 0\|1 | 1=双学位/联合学位 | 学校官网 | 每年 | 0 |
| `joint_partner_name` | 合作方名称 | `VARCHAR(200)` | 否 | - | 联合学位合作院校 | 学校官网 | 按需 | - |
| `internship_required` | 是否强制实习 | `TINYINT(1)` | 否 | 0\|1 | 1=毕业须完成实习 | 学校官网 | 每年 | 0 |
| `coop_available` | 是否Co-op | `TINYINT(1)` | 否 | 0\|1 | 1=提供带薪实习项目 | 学校官网 | 每年 | 0 |
| `total_credits` | 总学分 | `DECIMAL(6,1)` | 否 | >=0 | 毕业所需总学分 | 学校官网 | 每年 | 180.0 |
| `tuition_amount` | 本项目学费 | `DECIMAL(12,2)` | 否 | >=0 | 该项目年学费（原币） | 学校官网 | 每年 | 42500.00 |
| `tuition_currency` | 学费币种 | `CHAR(3)` | 否 | ISO 4217 | 学费币种 | 学校官网 | 每年 | GBP |
| `is_scholarship_available` | 是否有奖学金 | `TINYINT(1)` | 否 | 0\|1 | 1=该项目可申奖学金 | 学校官网 | 每年 | 1 |
| `seats_total` | 总招生名额 | `INT UNSIGNED` | 否 | >=0 | 项目总名额 | 学校官网 | 每年 | 180 |
| `seats_international` | 国际生名额 | `INT UNSIGNED` | 否 | >=0 | 国际生名额，应<=总名额 | 学校官网 | 每年 | 150 |
| `apply_url` | 申请页 | `VARCHAR(500)` | 否 | http(s):// | 项目申请页 | 学校官网 | 每年 | https://www.imperial.ac.uk/study/pg/... |
| `popularity_score` | 项目热度 | `DECIMAL(5,2)` | 否 | 0-100 | 中国学生申请热度（主观，可NULL） | 平台统计 | 每季度 | 82.00 |
| `is_active` | 是否招生中 | `TINYINT(1)` | 是 | 0\|1 | 1=当前可申请 | 学校官网 | 每季度 | 1 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `rankings`

**排名表** —— 多机构、多年份、多学科的排名记录，支持排名波动与方法论差异分析。

**关系**：
- N:1 —— rankings N:1 universities；N:1 —— rankings N:1 ranking_providers

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `rank_id` | 排名记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 排名机构 | 每年 | GB-LON-0001 |
| `provider_code` | 排名机构 | `VARCHAR(16)` | 是 | ranking_providers.provider_code | 排名机构代码 | 排名机构 | 每年 | QS |
| `rank_year` | 排名年份 | `YEAR` | 是 | 1990-2100 | 排名发布年份 | 排名机构 | 每年 | 2025 |
| `rank_value` | 排名值 | `SMALLINT UNSIGNED` | 否 | 1-5000 | 具体名次，区间排名取下限 | 排名机构 | 每年 | 2 |
| `rank_display` | 排名显示 | `VARCHAR(32)` | 否 | - | 展示用名次，如 601-650 | 排名机构 | 每年 | 2 |
| `rank_band` | 排名区间 | `VARCHAR(24)` | 否 | Top50\|Top100\|Top200\|Top500\|501+ | 分档标签，便于筛选 | 计算 | 每年 | Top50 |
| `score` | 综合得分 | `DECIMAL(8,2)` | 否 | 0-1000 | 该机构给出的综合评分 | 排名机构 | 每年 | 98.80 |
| `subject_code` | 学科代码 | `VARCHAR(24)` | 否 | subjects.subject_code；NULL=综合排名 | 学科排名填学科代码，综合排名为 NULL | 排名机构 | 每年 | — |
| `subject_name_zh` | 学科名称 | `VARCHAR(120)` | 否 | - | 学科排名名称 | 排名机构 | 每年 | — |
| `region_scope` | 排名范围 | `VARCHAR(16)` | 是 | 全球\|亚洲\|欧洲\|本国\|其他 | 排名地理口径 | 排名机构 | 每年 | 全球 |
| `total_institutions` | 参排总数 | `INT UNSIGNED` | 否 | >=0 | 该榜参排机构总数 | 排名机构 | 每年 | 1500 |
| `methodology_version` | 方法论版本 | `VARCHAR(40)` | 否 | - | 当年使用的方法论版本，用于波动归因 | 排名机构 | 每年 | 2024-v1 |
| `prev_rank_value` | 上一年排名 | `SMALLINT UNSIGNED` | 否 | 1-5000 | 上一年度名次 | 排名机构 | 每年 | 6 |
| `rank_change` | 排名变化 | `SMALLINT` | 否 | -2000~2000 | 名次变化，正数=上升（rank_value 减小） | 计算 | 每年 | 4 |
| `rank_change_flag` | 波动标记 | `VARCHAR(12)` | 否 | 大幅上升\|小幅上升\|持平\|小幅下降\|大幅下降 | 变化幅度定性标记（\|变化\|>=20 为大幅） | 计算 | 每年 | 小幅上升 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `admissions`

**录取要求表** —— 本科/硕士/博士分层次录取标准。program_id 为 NULL 时表示校级通用要求。

**关系**：
- N:1 —— admissions N:1 universities；N:1 —— admissions N:1 programs（可空）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `admission_id` | 录取要求ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 学校官网 | 每年 | GB-LON-0001 |
| `program_id` | 所属项目 | `INT UNSIGNED` | 否 | programs.program_id；NULL=校级通用 | 具体项目；NULL 表示全校通用要求 | 学校官网 | 每年 | 1 |
| `degree_level` | 学历层次 | `VARCHAR(16)` | 是 | 预科\|语言课程\|本科\|硕士\|博士\|交换 | 适用层次 | 学校官网 | 每年 | 硕士 |
| `academic_year` | 适用学年 | `CHAR(9)` | 是 | YYYY-YY：2026-27 | 入学学年 | 学校官网 | 每年 | 2026-27 |
| `gpa_min` | GPA最低要求 | `DECIMAL(5,2)` | 否 | 0-4.3 或 0-100 | 最低 GPA，须与 gpa_scale 自洽 | 学校官网 | 每年 | 3.30 |
| `gpa_scale` | GPA量纲 | `DECIMAL(4,2)` | 否 | 4.00\|4.30\|5.00\|100.00 | GPA 满分制，决定 gpa_min 上限校验 | 学校官网 | 每年 | 4.00 |
| `gpa_recommended` | GPA建议值 | `DECIMAL(5,2)` | 否 | 0-100 | 竞争力 GPA | 学校官网 | 每年 | 3.60 |
| `cn_university_tier_requirement` | 中国院校层次要求 | `VARCHAR(40)` | 否 | 985\|211\|双一流\|一本\|二本\|无要求\|名单内 | 对中国本科院校的层次要求 | 学校官网 | 每年 | 211 |
| `cn_min_score_100` | 中国百分制均分 | `DECIMAL(5,2)` | 否 | 0-100 | 中国本科百分制最低均分 | 学校官网 | 每年 | 85.00 |
| `ielts_min` | 雅思最低 | `DECIMAL(3,1)` | 否 | 0-9.0，步长0.5 | 雅思总分要求 | 学校官网 | 每年 | 6.5 |
| `ielts_min_sub` | 雅思单项最低 | `DECIMAL(3,1)` | 否 | 0-9.0 | 雅思单项最低分 | 学校官网 | 每年 | 6.0 |
| `toefl_min` | 托福最低 | `SMALLINT UNSIGNED` | 否 | 0-120 | 托福 iBT 总分 | 学校官网 | 每年 | 92 |
| `toefl_min_writing` | 托福写作最低 | `SMALLINT UNSIGNED` | 否 | 0-30 | 托福写作单项 | 学校官网 | 每年 | 20 |
| `pte_min` | PTE最低 | `SMALLINT UNSIGNED` | 否 | 10-90 | PTE 总分 | 学校官网 | 每年 | 62 |
| `duolingo_min` | 多邻国最低 | `SMALLINT UNSIGNED` | 否 | 10-160 | Duolingo 总分 | 学校官网 | 每年 | 115 |
| `waive_language_if_english_taught` | 英语授课可豁免 | `TINYINT(1)` | 否 | 0\|1 | 1=本科为英语授课可免语言成绩 | 学校官网 | 每年 | 1 |
| `gre_required` | GRE要求 | `VARCHAR(12)` | 否 | 必须\|建议\|不需要\|不适用 | GRE 要求 | 学校官网 | 每年 | 不需要 |
| `gre_min` | GRE最低分 | `SMALLINT UNSIGNED` | 否 | 260-340 | GRE 总分 | 学校官网 | 每年 | — |
| `gmat_required` | GMAT要求 | `VARCHAR(12)` | 否 | 必须\|建议\|不需要\|不适用 | GMAT 要求 | 学校官网 | 每年 | 不需要 |
| `gmat_min` | GMAT最低分 | `SMALLINT UNSIGNED` | 否 | 200-800 | GMAT 总分 | 学校官网 | 每年 | — |
| `sat_min` | SAT最低 | `SMALLINT UNSIGNED` | 否 | 400-1600 | 本科 SAT 要求 | 学校官网 | 每年 | — |
| `act_min` | ACT最低 | `TINYINT UNSIGNED` | 否 | 1-36 | 本科 ACT 要求 | 学校官网 | 每年 | — |
| `alevel_requirement` | A-Level要求 | `VARCHAR(60)` | 否 | 如 AAA/A*AA | A-Level 要求 | 学校官网 | 每年 | A*AA |
| `ib_min` | IB最低分 | `TINYINT UNSIGNED` | 否 | 24-45 | IB 总分要求 | 学校官网 | 每年 | 38 |
| `gaokao_accepted` | 是否接受高考 | `TINYINT(1)` | 否 | 0\|1 | 1=接受高考成绩直申 | 学校官网 | 每年 | 0 |
| `gaokao_min_score` | 高考最低分 | `DECIMAL(5,1)` | 否 | 0-750 | 高考分数要求（省控线倍数制见备注） | 学校官网 | 每年 | — |
| `prereq_courses` | 先修课要求 | `TEXT` | 否 | - | 必备先修课程清单 | 学校官网 | 每年 | 数据结构、算法、离散数学 |
| `work_experience_years` | 工作经验(年) | `TINYINT UNSIGNED` | 否 | 0-30 | 要求工作年限 | 学校官网 | 每年 | 0 |
| `sop_required` | 是否需文书 | `TINYINT(1)` | 否 | 0\|1 | 1=需个人陈述 | 学校官网 | 每年 | 1 |
| `sop_word_limit` | 文书字数上限 | `SMALLINT UNSIGNED` | 否 | 0-5000 | PS 字数上限 | 学校官网 | 每年 | 1000 |
| `lor_count` | 推荐信数量 | `TINYINT UNSIGNED` | 否 | 0-5 | 推荐信份数 | 学校官网 | 每年 | 2 |
| `lor_type` | 推荐信类型 | `VARCHAR(40)` | 否 | 学术\|职业\|均可\|学术为主 | 推荐人类型要求 | 学校官网 | 每年 | 学术 |
| `cv_required` | 是否需简历 | `TINYINT(1)` | 否 | 0\|1 | 1=需 CV | 学校官网 | 每年 | 1 |
| `interview_required` | 是否需面试 | `TINYINT(1)` | 否 | 0\|1 | 1=需面试 | 学校官网 | 每年 | 0 |
| `interview_type` | 面试形式 | `VARCHAR(30)` | 否 | 线上\|线下\|校友面\|机器面\|无 | 面试形式 | 学校官网 | 每年 | 线上 |
| `portfolio_required` | 是否需作品集 | `TINYINT(1)` | 否 | 0\|1 | 1=需作品集 | 学校官网 | 每年 | 0 |
| `portfolio_note` | 作品集说明 | `VARCHAR(255)` | 否 | - | 作品集页数/格式要求 | 学校官网 | 每年 | — |
| `writing_sample_required` | 是否需写作样本 | `TINYINT(1)` | 否 | 0\|1 | 1=需 Writing Sample | 学校官网 | 每年 | 0 |
| `app_deadline_fall` | 秋季截止日 | `DATE` | 否 | YYYY-MM-DD | 秋季入学申请截止 | 学校官网 | 每年 | 2026-03-31 |
| `app_deadline_spring` | 春季截止日 | `DATE` | 否 | YYYY-MM-DD | 春季入学申请截止 | 学校官网 | 每年 | — |
| `deadline_type` | 截止类型 | `VARCHAR(20)` | 否 | EA\|ED\|RD\|Rolling\|分轮次 | 申请轮次类型 | 学校官网 | 每年 | Rolling |
| `app_fee_amount` | 申请费 | `DECIMAL(8,2)` | 否 | >=0 | 申请费金额 | 学校官网 | 每年 | 80.00 |
| `app_fee_currency` | 申请费币种 | `CHAR(3)` | 否 | ISO 4217 | 申请费币种 | 学校官网 | 每年 | GBP |
| `app_fee_waiver_available` | 申请费可豁免 | `TINYINT(1)` | 否 | 0\|1 | 1=可申请豁免 | 学校官网 | 每年 | 0 |
| `applied_count` | 申请人数 | `INT UNSIGNED` | 否 | >=0 | 该层次申请总数 | 学校官网 | 每年 | 28000 |
| `offer_count` | 录取人数 | `INT UNSIGNED` | 否 | >=0 | 发放 offer 数，应<=申请数 | 学校官网 | 每年 | 4200 |
| `enrolled_count` | 入学人数 | `INT UNSIGNED` | 否 | >=0 | 实际入学数，应<=录取数 | 学校官网 | 每年 | 1900 |
| `acceptance_rate` | 录取率 | `DECIMAL(5,2)` | 否 | 0-100 | 该层次录取率（%） | 计算 | 每年 | 15.00 |
| `yield_rate` | 入学率 | `DECIMAL(5,2)` | 否 | 0-100 | 录取后入学率（%） | 计算 | 每年 | 45.20 |
| `scholarship_auto_consider` | 自动考虑奖学金 | `TINYINT(1)` | 否 | 0\|1 | 1=申请即自动纳入奖学金评审 | 学校官网 | 每年 | 1 |
| `notes` | 备注 | `TEXT` | 否 | - | 补充说明 | 人工 | 按需 | 热门项目建议提前3个月提交 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `costs_scholarships`

**费用与奖学金表** —— 学费、生活费、总预算及其涨幅，以及奖学金/助学金/TA-RA/贷款/打工政策。

**关系**：
- N:1 —— costs_scholarships N:1 universities；N:1 ——（可选）costs_scholarships N:1 programs

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `cost_id` | 费用记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 学校官网 | 每年 | GB-LON-0001 |
| `program_id` | 所属项目 | `INT UNSIGNED` | 否 | programs.program_id；NULL=校级 | 项目级费用，NULL 表示校级区间 | 学校官网 | 每年 | 1 |
| `academic_year` | 学年 | `CHAR(9)` | 是 | YYYY-YY | 费用适用学年 | 学校官网 | 每年 | 2025-26 |
| `tuition_min` | 最低学费 | `DECIMAL(12,2)` | 否 | >=0 | 年学费下限（原币） | 学校官网 | 每年 | 28000.00 |
| `tuition_max` | 最高学费 | `DECIMAL(12,2)` | 否 | >=0 | 年学费上限，须>=下限 | 学校官网 | 每年 | 52000.00 |
| `tuition_per_credit` | 每学分费用 | `DECIMAL(10,2)` | 否 | >=0 | 按学分计费时的单价 | 学校官网 | 每年 | — |
| `currency` | 币种 | `CHAR(3)` | 是 | ISO 4217 | 费用币种 | 学校官网 | 每年 | GBP |
| `fx_rate_to_cny` | 兑人民币汇率 | `DECIMAL(10,4)` | 否 | >0 | 采集时汇率 | 汇率API | 每季度 | 9.2400 |
| `tuition_yoy_pct` | 学费年涨幅 | `DECIMAL(5,2)` | 否 | -50~100 | 同比涨幅（%） | 学校官网历年对比 | 每年 | 4.50 |
| `living_cost_min` | 最低生活费 | `DECIMAL(12,2)` | 否 | >=0 | 年度生活费下限 | 学校官网/Numbeo | 每年 | 15000.00 |
| `living_cost_max` | 最高生活费 | `DECIMAL(12,2)` | 否 | >=0 | 年度生活费上限 | 学校官网/Numbeo | 每年 | 24000.00 |
| `housing_monthly` | 月住宿费 | `DECIMAL(10,2)` | 否 | >=0 | 月均住宿支出 | 学校官网 | 每年 | 1100.00 |
| `food_monthly` | 月餐饮费 | `DECIMAL(10,2)` | 否 | >=0 | 月均餐饮支出 | Numbeo | 每年 | 400.00 |
| `transport_monthly` | 月交通费 | `DECIMAL(10,2)` | 否 | >=0 | 月均交通支出 | Numbeo | 每年 | 150.00 |
| `insurance_annual` | 年保险费 | `DECIMAL(10,2)` | 否 | >=0 | 医疗保险年费 | 学校官网 | 每年 | 776.00 |
| `books_annual` | 年书本费 | `DECIMAL(10,2)` | 否 | >=0 | 教材与耗材年费 | 学校官网 | 每年 | 500.00 |
| `total_budget_est` | 年度总预算 | `DECIMAL(12,2)` | 否 | >=0 | 学费+生活费总预算，须≈tuition+living（偏差>20%告警） | 计算 | 每年 | 68000.00 |
| `total_budget_cny` | 总预算人民币 | `DECIMAL(12,2)` | 否 | >=0 | 折合人民币 | 计算 | 每季度 | 628000.00 |
| `budget_note` | 预算说明 | `TEXT` | 否 | - | 预算口径说明（含/不含项） | 人工 | 每年 | 含暑期住宿，不含往返机票 |
| `scholarship_available` | 是否有奖学金 | `TINYINT(1)` | 否 | 0\|1 | 1=面向国际生设奖学金 | 学校官网 | 每年 | 1 |
| `scholarship_count` | 奖学金项目数 | `SMALLINT UNSIGNED` | 否 | >=0 | 可申请奖学金数量 | 学校官网 | 每年 | 12 |
| `scholarship_coverage_pct` | 奖学金额度上限 | `DECIMAL(5,2)` | 否 | 0-100 | 最高可覆盖费用比例（%） | 学校官网 | 每年 | 100.00 |
| `scholarship_max_amount` | 奖学金最高金额 | `DECIMAL(12,2)` | 否 | >=0 | 单笔最高金额 | 学校官网 | 每年 | 50000.00 |
| `scholarship_deadline` | 奖学金截止日 | `DATE` | 否 | YYYY-MM-DD | 奖学金申请截止 | 学校官网 | 每年 | 2026-02-27 |
| `need_based_aid` | 是否按需资助 | `TINYINT(1)` | 否 | 0\|1 | 1=提供 need-based 助学金 | 学校官网 | 每年 | 0 |
| `merit_aid` | 是否择优资助 | `TINYINT(1)` | 否 | 0\|1 | 1=提供 merit-based | 学校官网 | 每年 | 1 |
| `ta_ra_available` | 是否有TA/RA | `TINYINT(1)` | 否 | 0\|1 | 1=提供助教/助研岗位 | 学校官网 | 每年 | 1 |
| `ta_ra_stipend` | TA/RA津贴 | `DECIMAL(12,2)` | 否 | >=0 | 学年津贴金额 | 学校官网 | 每年 | 21000.00 |
| `ta_ra_hours` | TA/RA周工时 | `TINYINT UNSIGNED` | 否 | 0-40 | 每周工作要求小时 | 学校官网 | 每年 | 6 |
| `loan_available` | 是否可贷款 | `TINYINT(1)` | 否 | 0\|1 | 1=国际生可申请留学贷款 | 银行/学校 | 每年 | 0 |
| `loan_provider` | 贷款提供方 | `VARCHAR(160)` | 否 | - | 贷款机构名称 | 银行 | 每年 | — |
| `work_policy_hours_week` | 学期中打工时数 | `TINYINT UNSIGNED` | 否 | 0-40 | 学期内合法打工上限（小时/周） | 移民局 | 每季度 | 20 |
| `work_policy_holiday_weeks` | 假期打工时数 | `TINYINT UNSIGNED` | 否 | 0-40 | 假期合法打工上限 | 移民局 | 每季度 | 40 |
| `on_campus_job_available` | 校内岗位 | `TINYINT(1)` | 否 | 0\|1 | 1=提供校内兼职 | 学校官网 | 每年 | 1 |
| `assistantship_note` | 资助说明 | `TEXT` | 否 | - | 资助政策补充说明 | 学校官网 | 每年 | 博士多由导师项目全额资助 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `china_student_metrics`

**中国学生指标表** —— 中国学生规模、录取转化、学联与华人生活支持，是"中国学生偏好分析"的事实基础。

**关系**：
- N:1 —— china_student_metrics N:1 universities（每校每学年一条）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `metric_id` | 指标记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 学校官网/HESA/IPEDS | 每年 | GB-LON-0001 |
| `academic_year` | 学年 | `CHAR(9)` | 是 | YYYY-YY | 统计学年 | 来源 | 每年 | 2023-24 |
| `cn_applications` | 中国学生申请数 | `INT UNSIGNED` | 否 | >=0 | 中国籍申请总数 | 学校官网/UCAS | 每年 | 8500 |
| `cn_offers` | 中国学生录取数 | `INT UNSIGNED` | 否 | >=0 | 发放 offer 数，应<=申请数 | 学校官网 | 每年 | 1100 |
| `cn_enrolled` | 中国学生入学数 | `INT UNSIGNED` | 否 | >=0 | 实际入学数，应<=录取数 | 学校官网 | 每年 | 620 |
| `cn_offer_rate` | 中国学生录取率 | `DECIMAL(5,2)` | 否 | 0-100 | 中国学生 offer 率（%） | 计算 | 每年 | 12.90 |
| `cn_enroll_rate` | 中国学生入学率 | `DECIMAL(5,2)` | 否 | 0-100 | 录取后入学率（%） | 计算 | 每年 | 56.40 |
| `cn_student_count` | 中国学生总数 | `INT UNSIGNED` | 否 | >=0 | 在校中国学生总数，应<=全校学生数 | 学校官网 | 每年 | 3200 |
| `cn_student_pct` | 中国学生占比 | `DECIMAL(5,2)` | 否 | 0-100 | 占全校比例，应<=国际生比例 | 计算 | 每年 | 14.50 |
| `cn_undergrad_count` | 中国本科生数 | `INT UNSIGNED` | 否 | >=0 | 中国籍本科生 | 学校官网 | 每年 | 900 |
| `cn_grad_count` | 中国研究生数 | `INT UNSIGNED` | 否 | >=0 | 中国籍授课型硕士 | 学校官网 | 每年 | 1800 |
| `cn_phd_count` | 中国博士生数 | `INT UNSIGNED` | 否 | >=0 | 中国籍博士 | 学校官网 | 每年 | 500 |
| `cn_cssa_name` | 中国学联名称 | `VARCHAR(160)` | 否 | - | 中国学生学者联谊会名称 | 学联官网 | 每年 | 帝国理工中国学生学者联谊会 |
| `cssa_website` | 学联网址 | `VARCHAR(500)` | 否 | http(s):// | 学联官网/公众号主页 | 学联官网 | 每年 | https://www.iccssa.org.uk/ |
| `cn_societies_count` | 华人社团数 | `SMALLINT UNSIGNED` | 否 | >=0 | 注册华人社团数量 | 学校社团名录 | 每年 | 18 |
| `cn_grocery_nearby` | 附近华人超市 | `TINYINT(1)` | 否 | 0\|1 | 1=步行/半小时可达中超 | 地图POI | 每年 | 1 |
| `cn_restaurant_count` | 中餐馆数量 | `SMALLINT UNSIGNED` | 否 | >=0 | 周边中餐馆数量 | 地图POI | 每年 | 65 |
| `cn_medical_support` | 中文医疗支持 | `TINYINT(1)` | 否 | 0\|1 | 1=有中文服务医疗机构 | 人工调研 | 每年 | 1 |
| `cn_admission_office_contact` | 中国招生联系人 | `VARCHAR(200)` | 否 | - | 中国区招生官/办公室公开联系方式（仅机构信息，非个人隐私） | 学校官网 | 每年 | china@imperial.ac.uk |
| `cn_language_support` | 中文支持服务 | `VARCHAR(120)` | 否 | - | 中文迎新/咨询/翻译服务 | 学校官网 | 每年 | 中文迎新会\|中文咨询 |
| `cn_preference_score` | 中国学生偏好分 | `DECIMAL(5,2)` | 否 | 0-100 或 NULL | 主观指标（冗余自 scores），无法确认填 NULL | scores表 | 每年 | 88.40 |
| `cn_search_index` | 搜索热度指数 | `DECIMAL(6,2)` | 否 | 0-1000 | 中文搜索热度指数（百度/微信指数归一化） | 平台统计/指数 | 每季度 | 92.00 |
| `cn_social_buzz` | 社交讨论热度 | `DECIMAL(6,2)` | 否 | 0-1000 | 社媒讨论量归一化指数 | 社媒监测 | 每季度 | 78.50 |
| `cn_alumni_return_rate` | 回国发展比例 | `DECIMAL(5,2)` | 否 | 0-100 | 毕业后回国就业比例（%） | 校友调研 | 每年 | 62.00 |
| `cn_agency_recommend_index` | 中介推荐度 | `DECIMAL(5,2)` | 否 | 0-100 | 留学机构推荐倾向指数（问卷抽样） | 机构问卷 | 每年 | 85.00 |
| `cn_top_majors` | 中国学生热门专业 | `TEXT` | 否 | - | 中国学生集中专业 TOP5 | 学校官网 | 每年 | 计算机\|电子工程\|金融\|管理\|材料 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `collaborations`

**对外合作表** —— 高校与中方院校/企业/政府等的合作协议记录，是 universities 与 partners 的多对多关联表。

**关系**：
- M:N 关联表 —— collaborations 实现 universities M:N partners，同时 N:1 universities / partners / departments

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `collab_id` | 合作记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 本校 | `CHAR(16)` | 是 | universities.school_id | 本校 school_id | 学校官网 | 按需 | GB-LON-0001 |
| `partner_id` | 合作机构ID | `INT UNSIGNED` | 否 | partners.partner_id | 合作机构；未收录时可留空并填 partner_name_zh | 机构官网 | 按需 | 1 |
| `dept_id` | 对接院系 | `INT UNSIGNED` | 否 | departments.dept_id | 本校对接院系 | 学校官网 | 按需 | 1 |
| `partner_name_zh` | 合作方中文名 | `VARCHAR(200)` | 是 | - | 合作机构中文名（冗余保底） | 学校官网 | 按需 | 清华大学 |
| `partner_name_en` | 合作方英文名 | `VARCHAR(220)` | 否 | - | 合作机构英文名 | 学校官网 | 按需 | Tsinghua University |
| `partner_country` | 合作方国家 | `CHAR(2)` | 否 | countries.country_code | 合作方所属国家/地区 | ISO | 按需 | CN |
| `collab_type` | 合作类型 | `VARCHAR(24)` | 是 | 2+2\|3+1\|1+3\|交换生\|双学位\|联合培养\|预科\|暑期研究\|联合实验室\|师资培训\|企业实习\|政府奖学金\|学分互认 | 合作模式分类 | 学校官网 | 按需 | 3+1 |
| `collab_level` | 合作层级 | `VARCHAR(12)` | 否 | 校级\|院级\|课题组 | 签约层级 | 学校官网 | 按需 | 校级 |
| `start_year` | 起始年份 | `SMALLINT UNSIGNED` | 否 | 1900-2100 | 协议生效年份 | 学校官网 | 按需 | 2015 |
| `end_year` | 终止年份 | `SMALLINT UNSIGNED` | 否 | 1900-2100 | 协议到期年份 | 学校官网 | 按需 | 2028 |
| `is_active` | 是否有效 | `TINYINT(1)` | 是 | 0\|1 | 1=协议在有效期内 | 学校官网 | 每年 | 1 |
| `cn_students_per_year` | 年度输送人数 | `SMALLINT UNSIGNED` | 否 | >=0 | 每年参与的中国学生数 | 学校官网/调研 | 每年 | 30 |
| `credit_transferable` | 学分可转 | `TINYINT(1)` | 否 | 0\|1 | 1=学分可转回中方院校 | 学校官网 | 按需 | 1 |
| `degree_awarded` | 授位方式 | `VARCHAR(20)` | 否 | 双学位\|单学位\|联合学位\|只发结业证 | 学位授予形式 | 学校官网 | 按需 | 单学位 |
| `funding_source` | 经费来源 | `VARCHAR(60)` | 否 | - | 资助来源（CSC/自费/校方/企业） | 学校官网 | 按需 | 自费 |
| `official_url` | 官方公告页 | `VARCHAR(500)` | 否 | http(s):// | 合作官方页面 | 学校官网 | 按需 | https://www.imperial.ac.uk/partnerships/ |
| `agreement_doc_url` | 协议文件 | `VARCHAR(500)` | 否 | http(s):// | 协议 PDF/公文链接 | 学校官网 | 按需 | — |
| `notes` | 备注 | `TEXT` | 否 | - | 补充说明 | 人工 | 按需 | 限工程学院相关专业 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `research`

**科研能力表** —— 论文、引用、经费、平台与博士培养等科研产出指标，支撑"科研能力"主观评分。

**关系**：
- N:1 —— research N:1 universities（每校每年一条）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `research_id` | 科研记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | Scopus/WoS/学校年报 | 每年 | GB-LON-0001 |
| `year` | 统计年份 | `YEAR` | 是 | 1900-2100 | 统计年度 | 数据库 | 每年 | 2024 |
| `annual_papers` | 年论文数 | `INT UNSIGNED` | 否 | >=0 | 当年发表论文总数（Scopus） | Scopus | 每年 | 11000 |
| `citation_count` | 总被引次数 | `BIGINT UNSIGNED` | 否 | >=0 | 近五年总被引 | Scopus | 每年 | 320000 |
| `h_index` | H指数 | `SMALLINT UNSIGNED` | 否 | 0-500 | H 指数 | Scopus | 每年 | 220 |
| `cited_top10_pct_papers` | 高被引论文占比 | `DECIMAL(5,2)` | 否 | 0-100 | 进入全球前10%被引论文占比 | Clarivate ESI | 每年 | 18.60 |
| `field_weighted_citation_impact` | 学科归一化影响力 | `DECIMAL(6,3)` | 否 | 0-100 | FWCI，1.0=世界平均 | SciVal | 每年 | 2.150 |
| `research_funding_amount` | 科研经费 | `DECIMAL(16,2)` | 否 | >=0 | 年度科研经费总额 | 年报/HESA | 每年 | 1200000000.00 |
| `funding_currency` | 经费币种 | `CHAR(3)` | 否 | ISO 4217 | 经费币种 | 年报 | 每年 | GBP |
| `funding_growth_pct` | 经费增长率 | `DECIMAL(6,2)` | 否 | -100~500 | 同比增速（%） | 年报 | 每年 | 6.20 |
| `national_labs_count` | 国家重点实验室数 | `SMALLINT UNSIGNED` | 否 | >=0 | 国家级科研平台数量 | 官方名单 | 每年 | 12 |
| `research_centers_count` | 研究中心数 | `SMALLINT UNSIGNED` | 否 | >=0 | 校级研究中心数量 | 学校官网 | 每年 | 45 |
| `phd_positions` | 博士招生规模 | `INT UNSIGNED` | 否 | >=0 | 年度博士招生数 | 学校官网 | 每年 | 1200 |
| `postdoc_positions` | 博后岗位数 | `INT UNSIGNED` | 否 | >=0 | 博士后岗位数 | 学校官网 | 每年 | 900 |
| `industry_collab_projects` | 校企合作项目数 | `INT UNSIGNED` | 否 | >=0 | 企业合作科研项目 | 年报 | 每年 | 340 |
| `patent_count` | 专利数 | `INT UNSIGNED` | 否 | >=0 | 当年授权专利数 | 专利库 | 每年 | 210 |
| `spinoff_companies` | 衍生企业数 | `SMALLINT UNSIGNED` | 否 | >=0 | 累计衍生创业公司数 | 年报 | 每年 | 80 |
| `research_strengths` | 科研优势领域 | `TEXT` | 否 | - | 优势学科与方向 | 人工整理 | 每年 | 工程、医学、自然科学 |
| `key_domains` | 重点领域标签 | `JSON` | 否 | JSON 数组 | 结构化领域标签 | 人工整理 | 每年 | ["AI","生物医学工程","能源"] |
| `research_score` | 科研能力评分 | `DECIMAL(5,2)` | 否 | 0-100 或 NULL | 主观指标冗余（冗余自 scores） | scores表 | 每年 | 95.20 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `careers_alumni`

**就业与校友表** —— 就业率、起薪、行业去向与校友网络，支撑"未来发展"与"校友情况"评分。

**关系**：
- N:1 —— careers_alumni N:1 universities（每校每年一条）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `career_id` | 就业记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 就业报告/Graduate Outcomes | 每年 | GB-LON-0001 |
| `year` | 统计年份 | `YEAR` | 是 | 1900-2100 | 毕业年份/统计年度 | 就业报告 | 每年 | 2024 |
| `employment_rate` | 就业率 | `DECIMAL(5,2)` | 否 | 0-100 | 毕业后就业比例（%） | HESA Graduate Outcomes | 每年 | 93.00 |
| `employment_rate_6mo` | 半年内就业率 | `DECIMAL(5,2)` | 否 | 0-100 | 毕业6个月内就业率 | 就业报告 | 每年 | 89.50 |
| `further_study_rate` | 继续深造率 | `DECIMAL(5,2)` | 否 | 0-100 | 升学比例（%） | 就业报告 | 每年 | 5.00 |
| `unemployment_rate` | 失业率 | `DECIMAL(5,2)` | 否 | 0-100 | 毕业失业率（%） | 就业报告 | 每年 | 2.00 |
| `avg_starting_salary` | 平均起薪 | `DECIMAL(12,2)` | 否 | >=0 | 毕业生平均起薪（原币/年） | 就业报告 | 每年 | 42000.00 |
| `median_salary` | 起薪中位数 | `DECIMAL(12,2)` | 否 | >=0 | 起薪中位数 | 就业报告 | 每年 | 38000.00 |
| `salary_p25` | 起薪P25 | `DECIMAL(12,2)` | 否 | >=0 | 起薪 25 分位 | 就业报告 | 每年 | 30000.00 |
| `salary_p75` | 起薪P75 | `DECIMAL(12,2)` | 否 | >=0 | 起薪 75 分位，须>=P25 | 就业报告 | 每年 | 55000.00 |
| `salary_currency` | 薪资币种 | `CHAR(3)` | 否 | ISO 4217 | 薪资币种 | 就业报告 | 每年 | GBP |
| `salary_cny` | 起薪折人民币 | `DECIMAL(12,2)` | 否 | >=0 | 折合人民币年薪 | 汇率API | 每季度 | 388000.00 |
| `salary_by_industry` | 分行业薪资 | `JSON` | 否 | JSON 对象 | 主要行业薪资分布 | 就业报告 | 每年 | {"金融":55000,"科技":48000,"咨询":46000} |
| `top_employers` | 主要雇主 | `TEXT` | 否 | - | TOP 雇主名单，\|分隔 | 就业报告 | 每年 | Google\|Goldman Sachs\|NHS\|BP\|McKinsey |
| `top_industries` | 主要行业 | `TEXT` | 否 | - | TOP 就业行业，\|分隔 | 就业报告 | 每年 | 科技\|金融\|医疗\|能源 |
| `internship_participation_pct` | 实习参与率 | `DECIMAL(5,2)` | 否 | 0-100 | 在校期间实习比例 | 学校官网 | 每年 | 72.00 |
| `career_service_score` | 就业服务评分 | `DECIMAL(5,2)` | 否 | 0-100 | 职业中心服务质量主观分 | 学生调研 | 每年 | 85.00 |
| `alumni_total` | 校友总数 | `INT UNSIGNED` | 否 | >=0 | 全球校友总数 | 校友会 | 每年 | 220000 |
| `notable_alumni_count` | 知名校友数 | `INT UNSIGNED` | 否 | >=0 | 有公开百科/榜单记录的知名校友数 | 公开资料 | 每年 | 150 |
| `alumni_cn_count` | 中国校友数 | `INT UNSIGNED` | 否 | >=0 | 中国校友规模 | 校友会 | 每年 | 12000 |
| `alumni_network_cn` | 中国校友网络 | `VARCHAR(120)` | 否 | - | 中国校友会/分会城市 | 校友会 | 每年 | 北京\|上海\|深圳\|香港 |
| `alumni_donation_amount` | 校友捐赠额 | `DECIMAL(16,2)` | 否 | >=0 | 年度校友捐赠总额 | 年报 | 每年 | 25000000.00 |
| `alumni_donation_currency` | 捐赠币种 | `CHAR(3)` | 否 | ISO 4217 | 捐赠币种 | 年报 | 每年 | GBP |
| `notable_alumni_examples` | 知名校友举例 | `TEXT` | 否 | - | 知名校友举例（公开人物） | 公开资料 | 每年 | Alexander Fleming（青霉素） |
| `alumni_score` | 校友情况评分 | `DECIMAL(5,2)` | 否 | 0-100 或 NULL | 主观指标冗余（冗余自 scores） | scores表 | 每年 | 91.00 |
| `future_outlook_score` | 未来发展评分 | `DECIMAL(5,2)` | 否 | 0-100 或 NULL | 主观指标冗余（冗余自 scores） | scores表 | 每年 | 89.50 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `campus_life_location`

**生活与地理表** —— 校园与城市生活环境：气候、安全、交通、住宿、医疗、文化多样性、无障碍与中国生活支持。

**关系**：
- 1:1 —— campus_life_location 1:1 universities（每校一条，UNIQUE 约束保证）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `life_id` | 生活记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校（唯一） | 学校官网 | 每年 | GB-LON-0001 |
| `city_id` | 所在城市 | `INT UNSIGNED` | 否 | cities.city_id | 所在城市 | 学校官网 | 每年 | 101 |
| `campus_type` | 校区位置类型 | `VARCHAR(16)` | 否 | 市中心\|市区\|郊区\|大学城\|小镇 | 主校区位置属性 | 学校官网 | 按需 | 市中心 |
| `campus_area_hectares` | 校园面积(公顷) | `DECIMAL(10,2)` | 否 | >=0 | 主校区占地面积 | 学校官网 | 按需 | 35.00 |
| `distance_to_city_km` | 距市中心(km) | `DECIMAL(6,2)` | 否 | >=0 | 到市中心距离 | 地图 | 按需 | 0.50 |
| `nearest_airport_code` | 最近机场 | `CHAR(3)` | 否 | IATA | 最近机场三字码 | IATA | 按需 | LHR |
| `nearest_airport_km` | 距机场(km) | `DECIMAL(6,2)` | 否 | >=0 | 到机场距离 | 地图 | 按需 | 23.00 |
| `public_transport_score` | 交通便利度 | `DECIMAL(5,2)` | 否 | 0-100 | 公共交通便利度 | 城市交通数据 | 每年 | 92.00 |
| `climate_type` | 气候类型 | `VARCHAR(32)` | 否 | 温带海洋性\|地中海\|大陆性\|亚热带\|热带\|寒带\|高原 | 气候类型 | 气象数据 | 按需 | 温带海洋性 |
| `avg_temp_winter` | 冬季均温(℃) | `DECIMAL(5,2)` | 否 | -60~40 | 最冷月均温 | 气象数据 | 按需 | 5.20 |
| `avg_temp_summer` | 夏季均温(℃) | `DECIMAL(5,2)` | 否 | -20~50 | 最热月均温 | 气象数据 | 按需 | 18.70 |
| `annual_rainfall_mm` | 年降水量(mm) | `DECIMAL(8,1)` | 否 | >=0 | 年降水量 | 气象数据 | 按需 | 600.0 |
| `safety_index` | 安全指数 | `DECIMAL(5,2)` | 否 | 0-100 | 区域安全指数，越高越安全 | 警方/Numbeo | 每年 | 68.00 |
| `crime_rate_per_100k` | 犯罪率 | `DECIMAL(8,2)` | 否 | 0-99999 | 周边地区犯罪率 | 警方公开数据 | 每年 | 78.40 |
| `campus_security_note` | 校园安保 | `TEXT` | 否 | - | 校园安保措施说明 | 学校官网 | 每年 | 24小时校警+门禁+护送服务 |
| `housing_on_campus` | 是否提供校内住宿 | `TINYINT(1)` | 否 | 0\|1 | 1=提供校内宿舍 | 学校官网 | 每年 | 1 |
| `housing_guaranteed_for_intl` | 国际生住宿保障 | `TINYINT(1)` | 否 | 0\|1 | 1=国际生保证住宿 | 学校官网 | 每年 | 1 |
| `housing_monthly_min` | 月住宿费下限 | `DECIMAL(10,2)` | 否 | >=0 | 校内/周边月租下限 | 学校官网 | 每年 | 900.00 |
| `housing_monthly_max` | 月住宿费上限 | `DECIMAL(10,2)` | 否 | >=0 | 月租上限，须>=下限 | 学校官网 | 每年 | 1800.00 |
| `medical_insurance_required` | 是否强制保险 | `TINYINT(1)` | 否 | 0\|1 | 1=强制购买医疗保险 | 移民局/学校 | 每年 | 1 |
| `medical_facility_on_campus` | 校内医疗 | `TINYINT(1)` | 否 | 0\|1 | 1=校内有医疗中心 | 学校官网 | 每年 | 1 |
| `mental_health_support` | 心理支持 | `TINYINT(1)` | 否 | 0\|1 | 1=提供心理咨询服务 | 学校官网 | 每年 | 1 |
| `campus_culture` | 校园文化 | `TEXT` | 否 | - | 校园氛围与社团文化描述 | 人工撰写 | 每年 | 学术氛围浓厚，工程与医学强势 |
| `religious_atmosphere` | 宗教氛围 | `VARCHAR(30)` | 否 | 无\|较弱\|中性\|较浓\|浓厚 | 校园宗教氛围强度 | 学校官网 | 按需 | 无 |
| `diversity_index` | 多样性指数 | `DECIMAL(5,2)` | 否 | 0-100 | 学生群体多元程度 | 学校官网 | 每年 | 88.00 |
| `intl_student_services_score` | 国际生服务 | `DECIMAL(5,2)` | 否 | 0-100 | 国际学生服务质量 | 学生调研 | 每年 | 86.00 |
| `disability_support_score` | 无障碍支持 | `DECIMAL(5,2)` | 否 | 0-100 | 无障碍设施与支持服务评分 | 学校官网/调研 | 每年 | 90.00 |
| `lgbtq_friendly` | LGBTQ友好度 | `DECIMAL(5,2)` | 否 | 0-100 | 友好度评分 | 第三方调研 | 每年 | 85.00 |
| `sports_facilities` | 体育设施 | `TEXT` | 否 | - | 主要体育设施 | 学校官网 | 按需 | 体育馆\|游泳馆\|攀岩墙 |
| `chinese_community_size` | 华人社区规模 | `VARCHAR(20)` | 否 | 很大\|较大\|一般\|较小\|很小 | 当地华人社区规模 | 人工调研 | 每年 | 很大 |
| `cn_grocery_nearby` | 附近华人超市 | `TINYINT(1)` | 否 | 0\|1 | 1=有中超 | 地图POI | 每年 | 1 |
| `cn_restaurant_count` | 中餐馆数量 | `SMALLINT UNSIGNED` | 否 | >=0 | 周边中餐馆数量 | 地图POI | 每年 | 65 |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `scores`

**主观评分表** —— 0-100 主观指标的评分主表。每条评分必须带维度权重、理由、证据、来源URL、基准日与置信度；无法确认时 score_value=NULL 且 status='待核实'。

**关系**：
- N:1 —— scores N:1 universities；N:1 —— scores N:1 score_metrics

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `score_id` | 评分ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 被评分高校 | 内部 | 实时 | GB-LON-0001 |
| `metric_code` | 指标代码 | `VARCHAR(32)` | 是 | score_metrics.metric_code | 指标代码，如 CHINA_PREFERENCE | 内部 | 实时 | CHINA_PREFERENCE |
| `score_value` | 评分值 | `DECIMAL(5,2)` | 否 | 0-100 或 NULL | 最终加权得分；无法确认填 NULL（严禁编造） | 加权计算 | 每年 | 88.40 |
| `dimension_weights` | 维度权重 | `JSON` | 是 | JSON 对象，合计=1 | 本次评分实际使用的维度与权重 | 研究员设定 | 每年 | {"申请热度":0.20,"就业回报":0.20} |
| `dimension_scores` | 维度得分 | `JSON` | 否 | JSON 对象，各值 0-100 或 null | 各维度原始得分 | 研究员打分 | 每年 | {"申请热度":92,"就业回报":88} |
| `rationale` | 评分理由 | `TEXT` | 是 | - | 为什么打这个分（必填，200字以上） | 研究员撰写 | 每年 | 中国学生申请量连续三年增长… |
| `evidence` | 支撑证据 | `TEXT` | 是 | - | 客观证据描述（数字/事实） | 研究员整理 | 每年 | 2023/24 中国籍在校生3200人，占14.5%… |
| `source_urls` | 证据来源URL | `TEXT` | 是 | 多个 URL 用换行或\|分隔 | 证据链接，至少1条（必填） | 研究员整理 | 每年 | https://www.hesa.ac.uk/...\|https://www.imperial.ac.uk/... |
| `as_of` | 评分基准日 | `DATE` | 是 | YYYY-MM-DD | 评分所依据数据的截止日期 | 研究员 | 每年 | 2025-08-31 |
| `confidence` | 置信度 | `ENUM('high','medium','low')` | 是 | high\|medium\|low | 评分置信度：high=多源交叉验证；medium=单一权威源；low=样本有限 | 研究员判定 | 每年 | high |
| `score_min` | 量表下限 | `TINYINT UNSIGNED` | 是 | 固定0 | 量表下限 | 方法论 | 按需 | 0 |
| `score_max` | 量表上限 | `TINYINT UNSIGNED` | 是 | 固定100 | 量表上限 | 方法论 | 按需 | 100 |
| `status` | 评分状态 | `VARCHAR(16)` | 是 | 待核实\|已核实\|有冲突\|已废弃 | score_value 为 NULL 时必须为"待核实" | 审核流程 | 实时 | 已核实 |
| `prev_score_value` | 上次评分 | `DECIMAL(5,2)` | 否 | 0-100 | 上一次复评得分 | 系统 | 每年 | 85.00 |
| `score_change` | 评分变化 | `DECIMAL(5,2)` | 否 | -100~100 | 本次相对上次变化 | 计算 | 每年 | 3.40 |
| `reviewer1` | 初审人 | `VARCHAR(64)` | 否 | - | 第一打分人账号 | 内部 | 实时 | researcher_01 |
| `reviewer2` | 复审人 | `VARCHAR(64)` | 否 | - | 第二打分人账号；差异>15分需第三人仲裁 | 内部 | 实时 | researcher_02 |
| `review_note` | 复核备注 | `TEXT` | 否 | - | 复核意见与仲裁记录 | 复核员 | 实时 | 两人分差4分，取均值 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `accreditations`

**认证与学位认可度表** —— 院校级与专业级认证记录，重点覆盖中国教育部涉外监管网与中留服学历学位认证结论。

**关系**：
- N:1 —— accreditations N:1 universities（一校可有多条认证/多个专业认证）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `accred_id` | 认证记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 认证机构 | 每年 | GB-LON-0001 |
| `accred_body` | 认证机构 | `VARCHAR(160)` | 是 | - | 认证机构名称，如 中国教育部、CSCSE、AACSB、ABET | 认证机构 | 按需 | 中国教育部 |
| `accred_body_en` | 认证机构英文名 | `VARCHAR(200)` | 否 | - | 认证机构英文名称 | 认证机构 | 按需 | Ministry of Education, China |
| `accred_type` | 认证类型 | `VARCHAR(24)` | 是 | 院校认证\|专业认证\|中国教育部\|中留服\|行业协会\|国际认证\|州/省级\|其他 | 认证类型 | 认证机构 | 按需 | 中国教育部 |
| `accred_scope` | 认证范围 | `VARCHAR(160)` | 否 | - | 认证覆盖的学科/项目范围 | 认证机构 | 按需 | 全校 |
| `status` | 认证状态 | `VARCHAR(16)` | 是 | 有效\|有条件\|暂停\|失效\|待核实 | 当前状态 | 认证机构 | 每年 | 有效 |
| `valid_from` | 生效日期 | `DATE` | 否 | YYYY-MM-DD | 认证生效日 | 认证机构 | 按需 | 2003-01-01 |
| `valid_to` | 失效日期 | `DATE` | 否 | YYYY-MM-DD | 认证到期日 | 认证机构 | 按需 | — |
| `cscse_status` | 中留服认证结论 | `VARCHAR(20)` | 否 | 可认证\|不予认证\|暂不认证\|待核实 | 中留服对学位的认证结论 | zwfw.cscse.edu.cn | 每季度 | 可认证 |
| `cscse_note` | 中留服说明 | `TEXT` | 否 | - | 认证条件说明（如全日制、出境学习时长要求） | 中留服 | 每季度 | 全日制在校学习且出境时间符合要求可认证 |
| `degree_recognition_cn` | 国内学位认可度 | `VARCHAR(20)` | 否 | 完全认可\|基本认可\|需评估\|不认可\|待核实 | 国内用人单位/考公考编认可度 | 调研 | 每年 | 完全认可 |
| `recognition_note` | 认可度说明 | `TEXT` | 否 | - | 认可度风险提示 | 调研 | 每年 | 世界前100，一线城市落户政策倾斜 |
| `certificate_url` | 认证证明URL | `VARCHAR(500)` | 否 | http(s):// | 认证文件/查询页链接 | 认证机构 | 按需 | https://jsj.moe.gov.cn/... |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `visa_immigration`

**签证与移民政策表** —— 按国家/地区维度的学生签证、毕业生工作签（PSW/OPT）、工签与移民通道政策，政策类数据每季度复核。

**关系**：
- N:1 —— visa_immigration N:1 countries（按国家/地区维护，被 universities 通过 country_code 间接引用）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `vi_id` | 政策记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `country_code` | 国家/地区 | `CHAR(2)` | 是 | countries.country_code | 适用国家/地区 | 移民局 | 每季度 | GB |
| `region_scope` | 适用范围 | `VARCHAR(40)` | 否 | - | 政策适用细分地区（如英格兰/苏格兰） | 移民局 | 按需 | 全英 |
| `visa_type` | 签证类型 | `VARCHAR(20)` | 是 | 学生签证\|毕业生签证\|工作签证\|访问签证\|其他 | 签证类别 | 移民局 | 每季度 | 毕业生签证 |
| `visa_name_zh` | 签证中文名 | `VARCHAR(80)` | 是 | - | 签证类别中文名 | 移民局 | 每季度 | 毕业生签证（PSW） |
| `visa_name_en` | 签证英文名 | `VARCHAR(120)` | 否 | - | 签证官方英文名 | 移民局 | 每季度 | Graduate Route |
| `min_funds_required` | 资金证明要求 | `DECIMAL(12,2)` | 否 | >=0 | 签证所需资金证明金额 | 移民局 | 每季度 | 1136.00 |
| `funds_currency` | 资金币种 | `CHAR(3)` | 否 | ISO 4217 | 资金证明币种 | 移民局 | 每季度 | GBP |
| `psw_months` | PSW时长(月) | `SMALLINT UNSIGNED` | 否 | 0-120 | 毕业后可停留工作月数（英国 Graduate Route） | 移民局 | 每季度 | 24 |
| `opt_months` | OPT时长(月) | `SMALLINT UNSIGNED` | 否 | 0-60 | 美国 OPT 时长 | USCIS | 每季度 | — |
| `stem_opt_months` | STEM OPT延长期(月) | `SMALLINT UNSIGNED` | 否 | 0-60 | STEM 专业额外延期 | USCIS | 每季度 | — |
| `post_study_work_name` | 毕业后工签名称 | `VARCHAR(80)` | 否 | - | 通用名称 | 移民局 | 每季度 | Graduate Route |
| `work_rights_during_study_hours` | 在读打工时数 | `TINYINT UNSIGNED` | 否 | 0-40 | 学期内每周合法打工小时 | 移民局 | 每季度 | 20 |
| `dependent_rights` | 陪读/家属权利 | `VARCHAR(80)` | 否 | - | 家属陪工/陪读政策 | 移民局 | 每季度 | 研究型研究生可携家属 |
| `pr_pathway_exists` | 是否有移民通道 | `TINYINT(1)` | 否 | 0\|1 | 1=存在明确永居路径 | 移民局 | 每季度 | 1 |
| `pr_years_typical` | 典型永居年限 | `TINYINT UNSIGNED` | 否 | 0-20 | 常规转永居所需年数 | 移民局 | 每季度 | 5 |
| `policy_difficulty_index` | 政策难度指数 | `DECIMAL(5,2)` | 否 | 0-100 | 签证/留居政策难度主观分，越高越难 | 研究员 | 每季度 | 38.00 |
| `local_job_difficulty_index` | 当地就业难度 | `DECIMAL(5,2)` | 否 | 0-100 | 国际生留当地就业难度主观分，越高越难 | 调研 | 每年 | 62.00 |
| `policy_highlights` | 政策要点 | `TEXT` | 否 | - | 关键政策变化与提示 | 移民局 | 每季度 | 2024年起本科毕业生亦可申请2年 |
| `official_url` | 官方来源 | `VARCHAR(500)` | 是 | http(s):// | 移民局官方页面 | 移民局 | 每季度 | https://www.gov.uk/graduate-visa |
| `policy_as_of` | 政策基准日 | `DATE` | 是 | YYYY-MM-DD | 政策生效/最后确认日期 | 移民局 | 每季度 | 2025-07-01 |
| `next_review_date` | 下次复核日 | `DATE` | 否 | YYYY-MM-DD | 下次政策复核日期 | 内部 | 每季度 | 2025-10-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 来源 | 内部 | 实时 | 5 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `institution_profile`

**院校发展与财务健康表** —— 财政健康、捐赠基金、战略规划、新校区与新专业等中长期发展信号，用于风险预警。

**关系**：
- N:1 —— institution_profile N:1 universities（每校每财年一条）

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `profile_id` | 档案ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `school_id` | 所属高校 | `CHAR(16)` | 是 | universities.school_id | 所属高校 | 年报/评级机构 | 每年 | GB-LON-0001 |
| `fiscal_year` | 财年 | `CHAR(9)` | 是 | YYYY-YY | 财年 | 年报 | 每年 | 2023-24 |
| `endowment_amount` | 捐赠基金 | `DECIMAL(18,2)` | 否 | >=0 | 校产基金/捐赠基金规模 | 年报/NACUBO | 每年 | 220000000.00 |
| `endowment_currency` | 基金币种 | `CHAR(3)` | 否 | ISO 4217 | 基金币种 | 年报 | 每年 | GBP |
| `annual_revenue` | 年度收入 | `DECIMAL(18,2)` | 否 | >=0 | 年度总收入 | 年报 | 每年 | 1200000000.00 |
| `annual_expense` | 年度支出 | `DECIMAL(18,2)` | 否 | >=0 | 年度总支出 | 年报 | 每年 | 1150000000.00 |
| `surplus_deficit` | 年度结余 | `DECIMAL(18,2)` | 否 | 可正可负 | 收入-支出 | 计算 | 每年 | 50000000.00 |
| `credit_rating` | 信用评级 | `VARCHAR(20)` | 否 | AAA\|AA\|A\|BBB\|BB\|其他\|无 | 评级机构信用等级 | 穆迪/标普 | 每年 | Aa2 |
| `financial_health_score` | 财务健康分 | `DECIMAL(5,2)` | 否 | 0-100 | 财务健康综合评分，低于40预警 | 计算+研究员 | 每年 | 88.00 |
| `strategic_plan_name` | 战略规划名称 | `VARCHAR(160)` | 否 | - | 现行战略规划名称 | 学校官网 | 每年 | Imperial Strategy 2025-2035 |
| `strategic_plan_url` | 战略规划链接 | `VARCHAR(500)` | 否 | http(s):// | 规划文件链接 | 学校官网 | 每年 | https://www.imperial.ac.uk/strategy/ |
| `new_campus_projects` | 新校区/新建设 | `TEXT` | 否 | - | 在建/规划新校区项目 | 学校官网 | 每年 | White City 二期 |
| `new_programs_recent` | 新增专业 | `TEXT` | 否 | - | 近两年新开项目 | 学校官网 | 每年 | MSc AI for Science |
| `merged_or_closed_programs` | 合并/停招项目 | `TEXT` | 否 | - | 停招或合并项目（重要风险信号） | 学校官网 | 每年 | — |
| `enrollment_trend` | 招生趋势 | `VARCHAR(12)` | 否 | 增长\|平稳\|下降 | 在校生规模趋势 | 年报 | 每年 | 增长 |
| `enrollment_trend_pct` | 招生变化率 | `DECIMAL(6,2)` | 否 | -100~500 | 同比变化（%） | 年报 | 每年 | 3.20 |
| `notable_investments` | 重大投入 | `TEXT` | 否 | - | 重大投资/建设事项 | 年报 | 每年 | 新建AI计算中心 £50M |
| `risk_flags` | 风险标记 | `TEXT` | 否 | - | 财政/合规/声誉风险提示 | 研究员 | 每季度 | — |
| `as_of` | 数据基准日 | `DATE` | 否 | YYYY-MM-DD | 本条数据的官方口径日期（非采集日期），用于时效校验 | 来源标注 | 按字段类别 | 2025-09-01 |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 指向数据来源表，保证每条数据可追溯 | 内部 | 实时 | 1024 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 记录创建时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `updated_at` | 更新时间 | `DATETIME` | 是 | 系统时间 | 记录更新时间，自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `update_logs`

**更新日志表** —— 全库字段级变更留痕，支持审计、回滚与时效追踪。以 table_name+record_id 多态关联。

**关系**：
- 多态关联 —— update_logs 通过 table_name + record_id 指向任意业务表，不建物理外键

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `log_id` | 日志ID | `BIGINT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `table_name` | 目标表名 | `VARCHAR(64)` | 是 | - | 被修改的表名 | 系统 | 实时 | universities |
| `record_id` | 记录ID | `VARCHAR(64)` | 是 | - | 被修改记录的主键值（字符串化） | 系统 | 实时 | GB-LON-0001 |
| `field_name` | 字段名 | `VARCHAR(64)` | 否 | - | 被修改字段；NULL 表示整行操作 | 系统 | 实时 | qs_rank |
| `change_type` | 变更类型 | `VARCHAR(16)` | 是 | 新增\|修改\|删除\|核实\|废弃\|回滚 | 变更类型 | 系统 | 实时 | 修改 |
| `old_value` | 旧值 | `TEXT` | 否 | - | 变更前的值 | 系统 | 实时 | 6 |
| `new_value` | 新值 | `TEXT` | 否 | - | 变更后的值 | 系统 | 实时 | 2 |
| `change_reason` | 变更原因 | `VARCHAR(255)` | 否 | - | 变更理由（如"QS2025发布"） | 操作员 | 实时 | QS 2025 榜单更新 |
| `operator` | 操作人 | `VARCHAR(64)` | 是 | - | 操作账号 | 系统 | 实时 | editor_01 |
| `operator_role` | 操作角色 | `VARCHAR(32)` | 否 | - | 操作人角色 | 系统 | 实时 | 数据录入员 |
| `batch_no` | 批次号 | `VARCHAR(40)` | 否 | - | 批量更新批次标识 | 系统 | 实时 | B20250901-QS |
| `source_id` | 数据来源ID | `INT UNSIGNED` | 否 | data_sources.source_id | 本次变更依据的来源 | 内部 | 实时 | 8 |
| `ip_hash` | IP哈希 | `CHAR(64)` | 否 | SHA-256 | 操作来源 IP 的哈希（不存明文，合规要求） | 系统 | 实时 | e3b0c44298fc1c14... |
| `is_rolled_back` | 是否已回滚 | `TINYINT(1)` | 是 | 0\|1 | 1=该变更已被回滚 | 系统 | 实时 | 0 |
| `rollback_of` | 回滚自 | `BIGINT UNSIGNED` | 否 | update_logs.log_id | 若为回滚操作，指向被回滚的 log_id | 系统 | 实时 | — |
| `changed_at` | 变更时间 | `DATETIME` | 是 | 系统时间 | 变更发生时间 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `data_conflicts`

**数据冲突表** —— 同一字段多来源冲突的记录与裁决，保证冲突可见、可追溯、不静默覆盖。

**关系**：
- 多态关联 —— data_conflicts 通过 table_name + record_id 指向任意业务表；通过 source_a_id/source_b_id 关联 data_sources

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `conflict_id` | 冲突ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `table_name` | 目标表名 | `VARCHAR(64)` | 是 | - | 冲突所在表 | 系统 | 实时 | costs_scholarships |
| `record_id` | 记录ID | `VARCHAR(64)` | 是 | - | 冲突记录主键 | 系统 | 实时 | 1 |
| `field_name` | 冲突字段 | `VARCHAR(64)` | 是 | - | 冲突字段名 | 系统 | 实时 | tuition_max |
| `value_a` | 来源A值 | `VARCHAR(500)` | 是 | - | 来源A提供的取值 | 采集 | 实时 | 42500.00 |
| `source_a_id` | 来源A | `INT UNSIGNED` | 是 | data_sources.source_id | 来源A ID | 采集 | 实时 | 11 |
| `value_b` | 来源B值 | `VARCHAR(500)` | 是 | - | 来源B提供的取值 | 采集 | 实时 | 43900.00 |
| `source_b_id` | 来源B | `INT UNSIGNED` | 是 | data_sources.source_id | 来源B ID | 采集 | 实时 | 12 |
| `detected_at` | 发现时间 | `DATETIME` | 是 | 系统时间 | 冲突发现时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `resolution_rule` | 裁决规则 | `VARCHAR(60)` | 否 | 来源优先级\|时间新近\|交叉验证\|人工裁定 | 采用的裁决规则 | SOP | 实时 | 来源优先级 |
| `resolved_value` | 裁决结果 | `VARCHAR(500)` | 否 | - | 最终采用的取值 | 复核员 | 实时 | 42500.00 |
| `resolved_by` | 裁决人 | `VARCHAR(64)` | 否 | - | 裁决人账号 | 内部 | 实时 | reviewer_01 |
| `resolved_at` | 裁决时间 | `DATETIME` | 否 | 系统时间 | 裁决时间 | 内部 | 实时 | 2025-09-02 09:00:00 |
| `status` | 处理状态 | `VARCHAR(16)` | 是 | 未处理\|已裁决\|已忽略 | 处理状态 | SOP | 实时 | 已裁决 |
| `notes` | 备注 | `TEXT` | 否 | - | 裁决说明 | 复核员 | 实时 | 以官网为准 |

## `admin_users`

**后台账号表** —— 后台管理账号与角色权限（数据录入/复核/学科研究员/政策跟踪/主编/超级管理员）。

**关系**：
- 独立表 —— 通过 update_logs.operator 间接关联业务数据

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `id` | 账号ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `username` | 登录名 | `VARCHAR(48)` | 是 | 3-48字符 | 登录账号，唯一 | 人工 | 按需 | editor_01 |
| `password_hash` | 密码哈希 | `VARCHAR(255)` | 是 | bcrypt/argon2 | 密码哈希，严禁明文存储 | 系统 | 按需 | $2y$10$... |
| `real_name` | 姓名 | `VARCHAR(64)` | 否 | - | 真实姓名 | 人工 | 按需 | 张三 |
| `role` | 角色 | `VARCHAR(24)` | 是 | 超级管理员\|数据录入\|数据复核\|学科研究员\|政策跟踪\|主编 | 角色决定权限 | 管理员 | 按需 | 数据录入 |
| `email` | 邮箱 | `VARCHAR(120)` | 否 | - | 联系邮箱 | 人工 | 按需 | editor@example.com |
| `last_login_at` | 最后登录 | `DATETIME` | 否 | 系统时间 | 最后登录时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
| `status` | 状态 | `VARCHAR(12)` | 是 | 启用\|禁用 | 账号状态 | 管理员 | 按需 | 启用 |
| `created_at` | 创建时间 | `DATETIME` | 是 | 系统时间 | 自动维护 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `favorites`

**收藏与对比篮** —— 前端用户（游客以 cookie token 标识）收藏的院校，用于对比与选校清单。

**关系**：
- N:1 —— favorites N:1 universities

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `id` | 记录ID | `INT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `user_token` | 用户标识 | `VARCHAR(64)` | 是 | 匿名 cookie token | 游客标识（随机串，不关联个人身份） | 前端 | 实时 | a1b2c3d4... |
| `school_id` | 收藏高校 | `CHAR(16)` | 是 | universities.school_id | 被收藏高校 | 前端 | 实时 | GB-LON-0001 |
| `note` | 备注 | `VARCHAR(255)` | 否 | - | 用户自填备注 | 用户 | 实时 | 冲刺校 |
| `added_at` | 收藏时间 | `DATETIME` | 是 | 系统时间 | 收藏时间 | 系统 | 实时 | 2025-09-01 10:00:00 |

## `search_logs`

**搜索行为日志表** —— 记录筛选与检索行为，用于计算"中国学生偏好"中的搜索热度维度。仅存匿名 token 与 IP 哈希。

**关系**：
- 独立日志表 —— 不建立物理外键，避免影响写入性能

| 字段名 | 中文名 | 数据类型 | 必填 | 枚举/取值范围 | 字段说明 | 数据来源 | 更新频率 | 示例 |
|---|---|---|---|---|---|---|---|---|
| `id` | 日志ID | `BIGINT UNSIGNED` | 是 | 自增 | 主键 | 系统 | 实时 | 1 |
| `user_token` | 用户标识 | `VARCHAR(64)` | 否 | 匿名 cookie token | 游客标识 | 前端 | 实时 | a1b2c3d4... |
| `keyword` | 搜索关键词 | `VARCHAR(120)` | 否 | - | 用户输入关键词 | 前端 | 实时 | 计算机 英国 |
| `filters_json` | 筛选条件 | `JSON` | 否 | JSON 对象 | 筛选条件快照 | 前端 | 实时 | {"country":"GB","budget_max":40} |
| `result_count` | 结果数 | `INT UNSIGNED` | 否 | >=0 | 返回结果数量 | 系统 | 实时 | 128 |
| `clicked_school_id` | 点击高校 | `CHAR(16)` | 否 | universities.school_id | 点击的学校 | 前端 | 实时 | GB-LON-0001 |
| `ip_hash` | IP哈希 | `CHAR(64)` | 否 | SHA-256 | IP 哈希，不存明文（PIPL/GDPR 合规） | 系统 | 实时 | e3b0c442... |
| `created_at` | 发生时间 | `DATETIME` | 是 | 系统时间 | 行为发生时间 | 系统 | 实时 | 2025-09-01 10:00:00 |
