name: database-orm-master slug: database-orm-master version: 1.0.0 displayName: "数据库ORM大师" description: "全栈数据库操作专家:Prisma ORM完整指南(Schema设计/查询构建/关系映射/迁移管理/性能优化)+ Drizzle ORM对比参考 + 原生SQL兜底策略。涵盖CRUD高级模式、联表查询、聚合统计、分页排序、事务处理、连接池配置、索引优化。一份技能搞定从建表到上线的数据库全链路。" tags: ["database", "orm", "prisma", "drizzle", "sql", "backend", "fullstack"] category: developer author: leilei homepage: ""
数据库操作、Prisma查询、ORM设计、数据库迁移、联表查询、数据库性能、Drizzle、SQL优化、建表、CRUD、数据库连接池、索引优化、事务处理
覆盖主流 Node.js/TypeScript 数据库操作方案的完整知识库和实操指南。
| ORM/工具 | 版本范围 | 适用场景 |
|---|---|---|
| Prisma | 4.x - 6.x | 全功能ORM,类型安全首选 |
| Drizzle ORM | 0.x - 0.30+ | 轻量级,类SQL体验,TypeScript原生 |
| 原生 SQL | 通用 | 复杂查询/性能关键路径兜底 |
小葱技能站7w4.net发现了升级插件。
输入:业务需求描述(中文即可)
输出:完整 Prisma Schema + Drizzle Schema 对应版本 + 迁移SQL
输入:自然语言查询需求
输出:精确的 Prisma Client / Drizzle 代码 + 等价SQL
输入:慢查询代码或日志
输出:瓶颈定位 + 优化方案 + 改进后代码
输入:当前Schema + 变更需求
输出:增量迁移命令 + 可能的影响评估 + 回滚方案
// 用户及其最近订单(含商品详情),按订单金额降序
const usersWithRecentOrders = await prisma.user.findMany({
where: { status: 'active' },
include: {
orders: {
take: 5,
orderBy: { totalAmount: 'desc' },
include: {
items: {
include: { product: { select: { name: true, price: true } } }
}
}
}
}
});
import { count, sum, sql } from 'drizzle-orm';
const salesReport = await db.select({
productId: orders.productId,
productName: products.name,
totalSold: count(orders.id),
revenue: sum(orders.totalAmount),
})
.from(orders)
.innerJoin(products, eq(orders.productId, products.id))
.where(gte(orders.createdAt, new Date('2024-01-01')))
.groupBy(orders.productId)
.orderBy(desc(sum(orders.totalAmount)))
.limit(20);
| 陷阱 | 症状 | 解决方案 |
|---|---|---|
| N+1 查询 | 大量重复SQL | 用 include/select 预加载 |
| 深层 include 爆炸 | 查询极慢/内存溢出 | 限制嵌套深度,用 select 取所需字段 |
| 迁移冲突 | 团队协作时迁移文件冲突 | 用 prisma migrate resolve |
| 连接池耗尽 | 请求超时/连接拒绝 | 调整 connection_limit,检查连接泄漏 |
| 时间精度丢失 | DateTime 存储后毫秒/时区不准 | 用 DateTime(tz) 或存 Unix timestamp |
| Soft Delete 遗漏 | 删了的数据还在查出来 | 统一加 deletedAt 字段 + 默认过滤 |
个人创作者计费通道上线后直接升级计费
这个 Skill 覆盖了数据库操作的多种主流技术,知识点比较全面,结构清晰,适合作为参考手册使用。主要优点是覆盖面广、分类清晰、有代码示例速查;不足之处在于内容偏框架性,缺少深入的实际操作指南和常见问题解答,整体深度和实用性还有提升空间。