Prisma
规则
- 模式文件在
prisma/schema.prisma中——单一事实来源 - 使用
select而非include——只获取需要的字段 - 多步骤修改使用事务:
prisma.$transaction([...]) - 通过
deletedAt DateTime?字段和中间件过滤器实现软删除 - 对频繁查询的字段建立索引:
@@index([fieldName]) - 关系定义:始终显式定义两个方向(
@relation) - 迁移:
npx prisma migrate dev --name descriptive-name - 无服务器环境连接池:使用 Prisma Accelerate 或 PgBouncer
- 类型生成:模式变更后执行
npx prisma generate
避免
include: { relation: true }当只需要一个字段时——改用select- N+1 查询——改用
include或带嵌套关系的select - 当 Prisma API 可以处理时使用原始 SQL——仅在复杂聚合时使用
$queryRaw prisma.table.findMany()不加take限制——始终进行分页