雷姆 Agent·念念工作台
首页文章项目

concept / stage 5

ORM 基础与使用边界

理解 ORM 如何把程序对象映射到数据库表,以及什么时候应该回到 SQL。

ORMIntermediate已完成35 分钟#orm#prisma#drizzle#sql
BEFORE YOU START

学习前置

SQLSQL 数据库基础先学习 ↗

一、这个技术是什么?

直接手写 SQL 很灵活,但在大型项目中容易出现字符串拼接、类型不一致和重复查询代码。ORM 让开发者可以用程序语言中的对象和方法操作数据库,同时生成或执行 SQL。

它解决的是“如何让应用代码和数据库结构更容易协作”的问题,但 ORM 不是数据库,也不能替代 SQL 原理。

二、没有它之前发生了什么?

所有 SQL 都手写在业务代码中
↓
重复查询、类型错误和注入风险增加
↓
开发者尝试用对象封装数据库操作
↓
ORM 提供模型、查询、迁移和类型能力

三、核心概念

1. Model

Model 用程序代码描述数据库中的实体和字段。

2. Query API

Query API 让应用使用方法或对象表达查询条件,但最终仍然需要数据库执行 SQL。

3. Migration

Migration 记录数据库结构如何从一个版本变化到另一个版本。

4. Transaction

ORM 通常提供事务 API,但开发者仍然必须理解事务边界和并发风险。

5. N+1 Query

先查询一批记录,再为每条记录单独查询关联数据,会产生大量重复请求。

四、运行流程

五、面试复习

一句话回答

ORM 把程序中的模型和数据库表连接起来,提供类型安全、查询封装和迁移能力,但复杂查询、性能问题和数据库原理仍然需要直接理解 SQL。

高频追问

  • ORM 会不会消灭 SQL?
  • Prisma 和 Drizzle 如何选择?
  • 什么是 N+1 查询?
  • Migration 和直接修改数据库有什么区别?

容易答错

不要说 ORM 一定比手写 SQL 更快或更安全。最终性能和安全性取决于生成的 SQL、参数绑定、索引和使用方式。

六、项目展示

知识平台可以用 ORM 读写学习进度和收藏,但 Markdown 正文仍由内容 loader 读取。这样展示内容的路径保持静态,用户数据又能使用事务和权限控制。

INTERVIEW MODE

面试复习

把知识讲给面试官听
ANSWER

ORM 把程序中的模型和数据库表连接起来,提供类型安全、查询封装和迁移能力,但复杂查询、性能问题和数据库原理仍然需要直接理解 SQL。

FOLLOW-UP
  • ORM 会不会消灭 SQL?
  • Prisma 和 Drizzle 如何选择?
  • 什么是 N+1 查询?
  • Migration 和直接修改数据库有什么区别?
WATCH OUT

不要说 ORM 一定比手写 SQL 更快或更安全。最终性能和安全性取决于生成的 SQL、参数绑定、索引和使用方式。

PROJECT PRACTICE

把 ORM 基础与使用边界 放进项目里

用真实项目验证概念,再把架构、取舍和结果整理成面试时可以讲清楚的案例。

Hermes AgentAgent 工作流与工具调用
个人博客技术文章与工程实践展示
AI 知识平台当前 Markdown 驱动的知识系统
KEEP EXPLORING

相关知识

3 个推荐节点
SQL · BeginnerSQL 数据库基础40 分钟 · 继续学习 ↗数据建模 · Intermediate数据建模40 分钟 · 继续学习 ↗Node.js · IntermediateExpress 与 Fastify 接口设计40 分钟 · 继续学习 ↗
← 上一篇SQL 数据库基础下一篇 →数据建模

课程目录

  1. 1. Model
  2. 2. Query API
  3. 3. Migration
  4. 4. Transaction
  5. 5. N+1 Query
  6. 一句话回答
  7. 高频追问
  8. 容易答错

学习关系

  • 阶段:5
  • 顺序:2
  • 前置知识:1
  • 相关知识:3
  • 更新时间:2026-08-02