staging.db 结构说明(MySQL 原表镜像·含字段释义)
本文档给人类读者;agent 请读
data/staging_schema.json(每次同步自动刷新,含字段释义、 实时行数、同步进度与栏目 tag 字典)。操作细节与故障排查见 staging-sync.md。 三库字典导航:staging.db(本文档);本体库 xgb_wiki.db 见 data-model.md §1–§6;知识图谱 graph.db 见 data-model.md §7。三库关系与更新次序见 staging-sync.md §1。 生成工具:scripts/sync/sync_staging.py(单文件,可独立拷走)。用法见其 docstring。 字段释义与源库结构以 docs/core/data-model.md §5 的实测口径为准(2026-09 复核)。
它是什么
内网 MySQL xuangubao 库 5 张源表的本地 SQLite 镜像,供加工层(ETL)读取,
也是"数据同步"与"数据加工"两段解耦的中间层:镜像只做原样搬运,不含任何解析。
真丢了不要紧——--full 一条命令从源库全量重建。
表关系速览
live_tuoshui_news.msg_id ──┬── live_tuoshui_tag_related.live_msg_id (取栏目)
tuoshui_msgs.msg_id ───────┬── tuoshui_tag_related.msg_id (取栏目)
*.plates 内"板块ID" ───────┴── plate_rank_infos.plate_id (字符串内 ID 逻辑关联,非外键)
表结构与字段释义
live_tuoshui_news — 盘中快讯(live 研报)
单篇完整版、标题即观点,盘中滚动、每天多篇。
| 字段 | 类型 | 释义 |
|---|---|---|
| id | INTEGER PK | 主键;增量同步进度基准 |
| msg_id | INTEGER | 消息 ID,标签表经它关联(不是主键 id) |
| title | TEXT | 研报标题;常带"券商名:"前缀(被转述方) |
| summary | TEXT | 摘要 |
| content | TEXT | 正文 HTML |
| stocks | TEXT | 编辑打标个股:"代码,名称;…" 分隔符字符串(无外键,需解析;打标率约 20%) |
| plates | TEXT | 题材:"板块ID,名称;…";板块 ID 对应 plate_rank_infos.plate_id |
| msg_display_time | TEXT | 展示时间(业务时间字段) |
| is_deleted | INTEGER | 1=源端已删除;业务查询必须过滤 is_deleted=0 |
tuoshui_msgs — 脱水研报(digest 每日汇总)
按栏目每日汇总,每栏目约每日 1 篇。
| 字段 | 类型 | 释义 |
|---|---|---|
| id | INTEGER PK | 主键;增量同步进度基准 |
| msg_id | INTEGER | 消息 ID,标签表经它关联(不是主键 id) |
| title | TEXT | 研报标题 |
| summary | TEXT | 摘要 |
| content | TEXT | 正文 HTML;tag_id=4(每日强股)正文含"N、个股:X 大涨题材:Y"结构段 |
| related_stocks | TEXT | 编辑打标个股(此表列名是 related_stocks,格式同上) |
| plates | TEXT | 题材,格式同 live 侧 |
| msg_created_at | TEXT | 创建时间(业务时间字段) |
| is_premium | INTEGER | APP 端付费标记 0/1 |
live_tuoshui_tag_related — 快讯×栏目关联
| 字段 | 类型 | 释义 |
|---|---|---|
| live_msg_id | INTEGER PK | = live_tuoshui_news.msg_id(不是主键 id) |
| tag_id | INTEGER PK | 栏目 ID,见下方 live 字典;缺省/未知归"未分类" |
tuoshui_tag_related — 研报×栏目关联
| 字段 | 类型 | 释义 |
|---|---|---|
| msg_id | INTEGER PK | = tuoshui_msgs.msg_id |
| tag_id | INTEGER PK | 栏目 ID,见下方 digest 字典 |
plate_rank_infos — 板块(题材)主数据
| 字段 | 类型 | 释义 |
|---|---|---|
| plate_id | INTEGER PK | 板块/题材 ID(即本体库 theme.plate_id) |
| plate_name | TEXT | 题材名称 |
| classification | TEXT | 概念 / 行业 / 风格 |
另有两张工具表:staging_meta(同步进度:wm_ 前缀的最大 id)、staging_log(每次同步的结果记录)。
栏目 tag 字典
digest 侧(tuoshui_tag_related.tag_id):1 脱水研报(主刊)/ 2 评级慧选 / 3 直击一线 / 4 每日强股 / 7 每日谈 / 99 周回顾(每周 1 篇)
live 侧(live_tuoshui_tag_related.tag_id):43 热点(量最大)/ 44 深度 / 42 消费 / 41 医药 / 36 行业精选 / 1 精选 / 11 业绩前瞻 / 46 政策 / 40 未分类
新手陷阱(拿库直接开查前必读)
- 标签关联走 msg_id,不是主键 id——最容易写错的 JOIN;
stocks/plates是分隔符字符串,源库无外键,个股/题材关系需解析字符串;- 镜像含已删除行(is_deleted=1),业务口径一律加
is_deleted=0; - 一篇研报可挂多个栏目 tag(关联表多行),别假设一对一。
常用查询示例
-- 看数据同步到哪了
SELECT * FROM staging_meta;
-- 最新 10 条快讯
SELECT id, title, msg_display_time FROM live_tuoshui_news
WHERE is_deleted=0 ORDER BY id DESC LIMIT 10;
-- 某日"脱水研报"主刊(tag_id=1)
SELECT m.id, m.title FROM tuoshui_msgs m
JOIN tuoshui_tag_related t ON t.msg_id = m.msg_id
WHERE t.tag_id = 1 AND m.msg_created_at >= '2026-09-24'
AND m.msg_created_at < '2026-09-25';
更新方式
python scripts/sync/sync_staging.py # 增量(日常)
python scripts/sync/sync_staging.py --full # 全量重建(首次/结构变化/修复)
python scripts/sync/sync_staging.py --check # 仅环境检查
python scripts/sync/sync_staging.py --selftest # 离线自检(不连网)
字段清单不在此罗列全集——源表演进后新增字段以 staging_schema.json 为准(自动跟随)。