47 lines
738 B
Markdown
47 lines
738 B
Markdown
---
|
|
|
|
## references/database.md
|
|
|
|
```markdown
|
|
# 数据库设计规范
|
|
|
|
## 通用字段
|
|
|
|
- `id`:主键,cuid / uuid / 自增
|
|
- `createdAt`:创建时间
|
|
- `updatedAt`:更新时间
|
|
- `deletedAt`:软删除(可选)
|
|
|
|
## 建模
|
|
|
|
- 先画实体关系,再写 schema
|
|
- 一对多用外键
|
|
- 多对多用关联表
|
|
- 避免过宽表,必要时拆表
|
|
|
|
## 索引
|
|
|
|
- 外键加索引
|
|
- 高频查询字段加索引
|
|
- 复合索引注意顺序
|
|
- 唯一约束用 unique
|
|
|
|
## 迁移
|
|
|
|
- 每次 schema 变更生成迁移文件
|
|
- 迁移必须可回滚
|
|
- 生产环境先备份
|
|
|
|
## 事务
|
|
|
|
- 多表写入用事务
|
|
- 保持事务短小
|
|
- 避免在事务里做网络请求
|
|
|
|
## 查询
|
|
|
|
- 避免 N+1
|
|
- 列表接口必须分页
|
|
- 大字段按需 select
|
|
```
|