[ PROMPT_NODE_24610 ]
database-design
[ SKILL_DOCUMENTATION ]
# 数据库设计
> **学会思考,不要照搬 SQL 模式。**
## 🎯 选择性阅读规则
**仅阅读与请求相关的文件!** 查看内容映射,找到你需要的内容。
| 文件 | 描述 | 阅读时机 |
|------|-------------|--------------|
| `database-selection.md` | PostgreSQL vs Neon vs Turso vs SQLite | 选择数据库 |
| `orm-selection.md` | Drizzle vs Prisma vs Kysely | 选择 ORM |
| `schema-design.md` | 规范化、主键、关系 | 设计模式 |
| `indexing.md` | 索引类型、复合索引 | 性能调优 |
| `optimization.md` | N+1, EXPLAIN ANALYZE | 查询优化 |
| `migrations.md` | 安全迁移、无服务器数据库 | 模式变更 |
---
## ⚠️ 核心原则
- 不明确时,询问用户数据库偏好
- 根据上下文选择数据库/ORM
- 不要默认对所有事物使用 PostgreSQL
---
## 决策检查清单
设计模式前:
- [ ] 是否询问了用户的数据库偏好?
- [ ] 是否为当前上下文选择了数据库?
- [ ] 是否考虑了部署环境?
- [ ] 是否规划了索引策略?
- [ ] 是否定义了关系类型?
## 反模式
❌ 对简单应用默认使用 PostgreSQL(SQLite 可能就足够了)
❌ 跳过索引
❌ 在生产环境使用 SELECT *
❌ 在结构化数据更合适时存储 JSON
❌ 忽略 N+1 查询