数据库设计与业务说明(整理版)
这份文档从当前业务出发解释数据:为什么需要这些对象、由哪个服务维护、流程如何读写、对象之间怎样关联,以及源码和测试数据库有什么不同。业务持续变化留下的旧名称、历史表和跨库依赖会明确保留背景,不把差异直接当成设计错误。
重要背景:nebula_ids 是单体版遗留数据库。 微服务拆分尚未完成,device、task 仍访问其中部分数据;同时已经存在 ik_yudao_device、ik_yudao_task 等独立库。物理上访问同一库,不等于两个服务只有一个共享库,也不等于所有遗留表都归当前服务维护。
建议阅读顺序
- 先读负责业务的微服务说明,了解流程、对象关系和关键字段。
- 遇到跨库访问,查数据源与归属和跨服务关系。
- 涉及设备检索、APP 记录或大数据列表,先读查询路径、索引与分区;修改接口前对照差异与待确认事项。
- 需要精确类型、默认值、索引或标签定义时,查实测结构字典。
微服务入口
| 微服务 | 业务阅读重点 | 文档 |
|---|---|---|
| system | 账号、组织、权限、租户、认证、消息与操作记录 | 系统服务 |
| infra | 配置、文件、代码生成、日志、监控等公共能力 | 基础设施服务 |
| report | GoView 项目、报表数据源、APK 推送历史及外部查询 | 报表服务 |
| device | 设备资料、安装应用、活跃及运行统计;独立库与遗留库衔接 | 设备服务 |
| launcher | 桌面业务配置、广告播放和执行反馈 | 桌面服务 |
| task | 任务与 UOTA 业务、执行记录、应用运行与统计 | 任务服务 |
| blacklist | 应用黑名单、策略及设备处理反馈 | 黑名单服务 |
| bpm | 表单、流程定义、审批运行数据及业务记录 | 流程服务 |
| rule | 规则链、规则定义、业务规则执行关联 | 规则服务 |
文档怎样划分
整理版共 60 份 Markdown:7 份总览与公共说明、38 份微服务业务文档、15 份实测结构附录,另有 6 个采集或静态检查工具。业务正文按职责和流程拆分:system 6 页、infra 5 页、report 4 页、device 4 页、launcher 4 页、task 5 页、blacklist 3 页、bpm 4 页、rule 3 页,均包含服务入口。来源、映射和差异尽量就近说明,不再为一小段内容单独建页。
结构附录按 12 个 MySQL 物理库各一页,TDengine 各库集中一页,ES 业务索引集中一页,另有字典入口。相同 ES mapping 合并展示,月份和类型差异仍逐项对应;不再为每个月份索引、每 15 张表或每个 TDengine 库单独建文档。附录较长是为了保留精确字段证据,平时从业务页按链接查阅即可。
当前核验范围
2026-09-18 对用户提供的本地测试环境进行了独立只读采集:12 个 MySQL 库、294 个表/视图、3,455 个字段;30 个 TDengine 库、31 个超级表/普通表结构及 4,651 个子表的目录统计;51 个开放 ES 索引的 mapping 与别名。ES 附录展开其中 23 个业务索引,其余 28 个系统、监控或归属未明索引仅登记名称和别名;不会因结构采集到它们,就推定它们属于这九个服务。
补采还覆盖 37 张 MySQL 表的分区定义,以及 23 个 ES 业务索引的分片、副本和分析器等设置。附录记录原始快照时间和摘要;子表数、分区数均是结构统计,不是业务记录数,也不是性能 验证结果。
采集没有读取业务记录、设备标签值、令牌内容或 ES 文档,也没有启动服务或修改数据库。Redis、SLS 等只梳理当前代码使用方式,未在线采集。数据源缺失、开放索引范围、非原子快照等限制见采集说明。
维护约定
- 当前业务行为以服务实现和映射为依据;物理类型、索引、外键以这次测试环境元数据为依据。两个证据层不能相互代替。
- 文中“逻辑关联”表示由代码、ID、设备标识或事件维系,不默认存在数据库外键,也不默认实时强一致。
- 新增字段、调整唯一键、修改动态分表或跨服务依赖时,同步更新业务说明和差异页,再更新结构附录。
- 本目录是新增整理版;旧文档、业务源码、现有站点配置和导航入口保持原样。各页使用独立 slug,新目录通过本页内部链接导航;本次未构建或发布站点。