Install
openclaw skills install qqyougit-database-schema-designer新项目建表拍脑袋,上线后慢查询满天飞?从需求到ER图到DDL到迁移策略,设计生产级数据库架构。覆盖规范化建模、索引策略、多租户设计、分库分表、向量数据库集成。支持MySQL/PostgreSQL/MongoDB/Redis/Milvus。 触发词:数据库设计、表结构设计、schema设计、ER图、建表、数据库建模、索引优化、数据库架构、数据模型、范式、反范式、分库分表、数据库迁移、DDL、数据库审查、多租户设计、向量数据库、RAG存储、信用评估系统、交易系统数据库 排除:SQL查询优化(用python-data-analysis)、ORM代码生成、数据库运维(用docker-deploy-assistant)
openclaw skills install qqyougit-database-schema-designer━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🗄️ 数据库设计 | {项目名} | {数据库类型}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 1. ER图
{mermaid ER diagram}
## 2. 表结构
### {表名}
| 字段 | 类型 | 约束 | 说明 |
|------|------|------|------|
| id | BIGINT | PK, AUTO_INCREMENT | 主键 |
| ... | ... | ... | ... |
### 索引设计
| 索引名 | 字段 | 类型 | 说明 |
|--------|------|------|------|
| idx_xxx | field1, field2 | BTREE | 用途说明 |
## 3. DDL语句
{SQL CREATE TABLE}
## 4. 设计说明
- 规范化:{说明}
- 分表策略:{说明}
- 扩展预案:{说明}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| 场景 | 推荐 | 原因 |
|---|---|---|
| 传统业务系统 | MySQL/PostgreSQL | 成熟稳定,事务支持 |
| 复杂查询/分析 | PostgreSQL | 高级查询/JSON支持 |
| 文档/灵活结构 | MongoDB | Schema-free |
| 高频缓存/会话 | Redis | 内存级速度 |
| 时序数据 | InfluxDB/TDengine | 时序优化 |
| 全文搜索 | Elasticsearch | 倒排索引 |
| 场景 | 建议 |
|---|---|
| 等值查询 | 单列B-Tree索引 |
| 范围查询 | 范围字段放复合索引最后 |
| 排序 | 排序字段加入复合索引 |
| 覆盖查询 | 复合索引包含SELECT字段 |
| 高区分度优先 | 区分度高的字段放索引前面 |
| 避免 | 不在低区分度字段建单列索引 |
| 模式 | 适用 | 优缺点 |
|---|---|---|
| 共享库共享表 | SaaS小客户 | 成本最低,隔离最弱,需tenant_id字段 |
| 共享库独立表 | SaaS中客户 | 隔离适中,DDL管理复杂 |
| 独立库 | 大客户要求 | 隔离最强,成本最高 |
中文输出,DDL和字段名用英文
| 借口 | 正确做法 |
|---|---|
| "需求已经很清楚了,直接建表吧" | 必须完成Step 1需求分析全部5项确认(实体关系、数据量级、读写比例、一致性要求、数据库选型),缺一不可 |
| "先用VARCHAR存所有字符串字段,以后再说" | 必须为每个字段选择精确的数据类型和长度,VARCHAR需注明最大长度合理性依据 |
| "外键太影响性能了,不加了" | 必须在设计说明中显式说明外键策略:是使用物理外键还是应用层保证,并给出理由 |
| "索引加多了影响写入,少建几个" | 必须基于实际查询模式设计索引,每个索引都要标注其服务的查询场景,不能凭感觉跳过 |
| "这个项目数据量不大,不需要考虑分区" | 必须评估未来12个月数据增长预估,超过1000万行的表必须提前规划分区/分表策略 |
| "DDL写个大概,注释后面补" | DDL必须包含所有字段注释、约束说明,禁止使用TODO占位 |
| "直接用UUID做主键,简单省事" | 必须说明主键策略选择理由(自增/UUID/雪花算法),并分析对索引和写入性能的影响 |