/database-design
设计 BK-CI 数据库表、DDL 脚本、索引、分表或数据归档策略时使用。当用户提到表结构、字段设计、索引优化、SQL 脚本命名、分片、归档迁移时优先使用。
$ npx -y skills add tencentblueking/bk-ci --skill database-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/database-design
Context preview
The summary Claude sees to decide when to auto-load this skill.
设计 BK-CI 数据库表、DDL 脚本、索引、分表或数据归档策略时使用。当用户提到表结构、字段设计、索引优化、SQL 脚本命名、分片、归档迁移时优先使用。
SKILL.md
database-design.SKILL.mdname: database-design description: 设计 BK-CI 数据库表、DDL 脚本、索引、分表或数据归档策略时使用。当用户提到表结构、字段设计、索引优化、SQL 脚本命名、分片、归档迁移时优先使用。
BK-CI 数据库设计
适用场景
- 新增或调整表结构
- 编写 DDL、DML 或增量更新脚本
- 设计索引、唯一约束、查询路径
- 评估是否需要分表、归档或冷热分层
- 审查某个数据模型是否适合当前服务边界
不适用场景
- 只是写一条临时查询 SQL 排查数据
- 只是改业务代码,不涉及持久化模型和表结构
- 需求本质是 API 设计、模块归属或权限模型,不是数据库设计
快速指导
1. 先确认数据归属到哪个服务。BK-CI 采用微服务拆分,禁止因为方便查询而跨服务共用数据库。 2. 先决定表的角色,再决定字段和索引:
- 主实体表:存核心业务状态
- 关系表:表达多对多或映射关系
- 汇总表:承载聚合读模型
- 历史表:承载高频追加或归档数据
3. 先按查询路径设计索引,不要先堆字段。最常用查询条件、排序字段、唯一约束字段优先进入索引设计。 4. DDL 变更必须走脚本管理,不要直接在数据库里手工改线上结构。 5. 变更前先考虑兼容性:
- 老字段是否仍被旧版本代码读取
- 新字段是否需要默认值
- 是否需要分阶段发布
6. 大表问题优先判断是索引、归档、冷热分层还是分表,不要默认直接分片。 7. 对 JSON、大文本、状态快照类字段,要明确为什么不能拆表,避免把主表做成“万能存储”。
高信号规则
- 脚本命名和版本目录要保持统一,详细规则见 `reference/1-script-management.md`
- 分表与路由策略的细节见 `reference/2-sharding.md`
- 表结构设计要服务于服务边界和查询模式,而不是追求理论上的“最全字段”
- 能用代码层聚合解决的问题,不优先通过跨服务数据库耦合解决
关键陷阱
- 只看写入模型,不看读路径,最后索引完全不匹配真实查询
- 先建“超大宽表”,后续再靠补丁式字段堆积解决一切问题
- 为了省事直接复用别的服务数据库,导致服务边界失效
- 把分表当成性能优化默认选项,忽略归档、汇总和冷热拆分
- 只改 DDL 不评估回滚、兼容和灰度发布路径
延伸阅读
- 脚本管理:`reference/1-script-management.md`
- 分表策略:`reference/2-sharding.md`
- 如果需求同时涉及模块归属,先看 `00-bkci-global-architecture`
Other skills on bk-ci.
- /00-bkci-global-architecture
用于跨模块开发、排查链路归属、判断某个需求应该落在哪个 BK-CI 模块,或需要快速理解流水线全链路协作时使用。单模块修改时优先读取对应模块 skill,而不是停留在这里。
Open skill - /agent-module-architecture
处理 BK-CI Agent 构建机侧能力时使用,例如守护进程、心跳、Ask 轮询、任务拉起、升级更新和与 Dispatch/Worker 的协作。当用户要改构建机宿主侧行为而不是 Worker 执行细节时优先使用。
Open skill - /api-interface-design
设计 BK-CI API 契约时使用,例如 Resource 路径设计、HTTP 方法选择、请求响应对象、错误码和版本策略。当用户要定义接口而不是实现业务逻辑时优先使用。
Open skill - /artifactory-module-architecture
处理 BK-CI 制品上传下载、制品元数据、BkRepo 或磁盘后端存储、文件任务和清理链路时使用。当用户提到构建产物、制品归档、下载令牌、报告文件、BkRepo 集成或制品清理时优先使用。
Open skill - /auth-module-architecture
处理 BK-CI Auth 模块时使用,例如 RBAC 权限校验、用户组与资源管理、IAM 集成、授权迁移和 OAuth2 认证。当用户要改权限平台实现而不是单次权限模型变更时优先使用。
Open skill - /backend-microservice-development
编写 BK-CI 后端微服务代码时使用,例如新增 Resource、组织 API/Service/DAO 分层、依赖注入、服务归属判断和 Spring Boot 开发约定。当用户要做 Kotlin/Java 后端开发时优先使用。
Open skill

