SuperAPI AI 工具集

database-prisma

数据与分析

查看项目

更新于 10-15 20:31

技能介绍

用途:该技能围绕 Prisma 的关系建模、迁移、索引、事务、高效查询与 TypeScript 集成展开,核心理念是「schema 是契约,migration 是历史,查询在负载下应可预测」。

主要能力与做法: 建模:在 schema.prisma 中定义清晰的实体与关系,使用 @id、@unique、@relation 以及有意识的 onDelete(仅在正确时使用 Cascade);封闭集合优先用 Prisma 枚举;可变实体默认带 createdAt / updatedAt;适度规范化,仅在读性能有实测理由时反规范化。 迁移:始终用 prisma migrate 生成迁移,生产环境不要只用 db push;应用前审查生成的 SQL;迁移应向前安全,避免无数据方案的破坏性重写;部署顺序为 migrate → 发布应用(或遵循项目文档化策略)。 查询:只选择必要字段(精简 select / include);用合适的 include/select 或批量查询避免 N+1;分页使用游标或受限的 skip/take;为高频过滤与排序建立索引(@@index、复合唯一);多表原子写入用 $transaction。 集成:每个进程一个 PrismaClient(开发热重载时用单例);不要把 client 直接暴露给 UI,封装到 repository/service;拼装 where/data 前校验输入;把 Prisma 错误(P2002 唯一约束、P2025 未找到)映射为领域错误。 软删除与多租户:软删除需在所有读取中保持一致过滤;多租户必须始终按 tenantId/orgId 限定查询范围,不能只依赖客户端。 反模式:无限制的 findMany、为「以防万一」而深层 include、在中间件回调中散落业务逻辑、用 db push 改生产、被过滤的外键缺少索引。 完成标准:schema 与关系一致、迁移经审查、无明显 N+1、热点路径有索引、数据库错误已映射到 API/领域层。 限制:资料未提供具体安装命令、版本、价格、平台支持或实测效果,相关内容暂未提供。