# Hello Data

> 操作数据库、编写迁移、设计 schema、管理事务、创建索引、使用 Prisma/Sequelize/TypeORM/Mongoose 等 ORM，或执行 SQL/NoSQL 操作时使用。

- Skill: `hellowind777/hello-data` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hellowind777/hello-data`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hellowind777/hello-data/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: hellowind777 (https://skillmd.com/u/hellowind777)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hellowind777/hello-data

---


数据库相关代码必须遵循以下规范。

## 编码前
先设计数据模型、迁移策略、回滚方案，再写代码。

## 迁移管理
- 所有 schema 变更通过迁移文件，不手动修改数据库
- 迁移必须可回滚（up + down）
- 生产迁移前在 staging 验证
- 迁移文件按时间戳排序

## 事务处理
- 多表写操作使用事务
- 事务范围最小化，避免长事务锁表
- 死锁预防：固定加锁顺序
- 失败时完整回滚，不留半完成状态

## 索引策略
- 查询条件字段建索引
- 复合索引注意列顺序（最左前缀匹配）
- 不要过度索引——每个索引都有写入成本
- 定期检查慢查询，优化索引

## 数据完整性
- 外键约束保证引用完整性
- NOT NULL + DEFAULT 避免脏数据
- 唯一约束防止重复
- 软删除 vs 硬删除：根据业务需求选择，但要一致

## 交付检查
- [ ] Schema 变更通过迁移文件
- [ ] 多表写操作使用事务
- [ ] 查询条件字段有索引
- [ ] 无 N+1 查询（配合 hello-perf）

