Hello Data

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

hellowind777 eb73187 1.2 KB Updated

File contents

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

编码前

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

迁移管理

  • 所有 schema 变更通过迁移文件,不手动修改数据库
  • 迁移必须可回滚(up + down)
  • 生产迁移前在 staging 验证
  • 迁移文件按时间戳排序

事务处理

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

索引策略

  • 查询条件字段建索引
  • 复合索引注意列顺序(最左前缀匹配)
  • 不要过度索引——每个索引都有写入成本
  • 定期检查慢查询,优化索引

数据完整性

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

交付检查

  • Schema 变更通过迁移文件
  • 多表写操作使用事务
  • 查询条件字段有索引
  • 无 N+1 查询(配合 hello-perf)

hellowind777/helloagents/tree/main/skills/hello-data commit eb731878a8

Frequently asked questions

npx skillmds@latest add hellowind777/hello-data