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 | 通用 | 複雜查詢/效能關鍵路徑兜底 |
輸入:業務需求描述(中文即可)
輸出:完整 Prisma Schema + Drizzle Schema 對應版本 + 遷移SQL
小蔥技能7w4.net持續更新中。
輸入:自然語言查詢需求
輸出:精確的 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 覆蓋了資料庫操作的多種主流技術,知識點比較全面,結構清晰,適合作為參考手冊使用。主要優點是覆蓋面廣、分類清晰、有程式碼示例速查;不足之處在於內容偏框架性,缺少深入的實際操作指南和常見問題解答,整體深度和實用性還有提升空間。