术语图鉴/后端基础/ORM
←→切换Esc返回

ORM Object-Relational Mapping

你可能会说

帮我处理一下ORM,我不太确定最佳实践是什么。

让你用写普通代码的方式操作数据库,而不用手写 SQL。

让你用写普通代码的方式操作数据库,而不用手写 SQL。它自动把你的代码翻译成数据库指令。

也常被叫作Object-Relational Mapping

生活类比

像翻译官——你说中文(代码),它翻译成英文(SQL)跟外国人(数据库)交流,你不用学外语。

🎮 动手试试

User.where('age', > 18).get()
↓ ORM 翻译 ↓
SELECT * FROM users WHERE age > 18
选择题选择一个你认为最合适的答案

关于「ORM」,以下哪个描述最准确?

你可以这样告诉 AI

帮我用 Prisma 定义数据模型:User 有 id、email、name,Post 有 id、title、content、authorId,设置关联。

容易混淆?这样区分

ORM Object-Relational Mapping≠
SQL SQL

ORM 是操作数据库的工具——把你写的代码翻译成 SQL;SQL 是与数据库通信的原始语言。ORM 帮你写 SQL,但复杂场景仍需理解 SQL。

什么时候用

需要快速开发数据库操作

使用 Prisma、TypeORM 等 ORM 工具,用代码操作数据库而不用写 SQL,自动处理连接池、迁移、防注入。

和 AI 协作时

想让 AI 帮你用 ORM 时,直接说「帮我用 Prisma 定义 User 和 Post 模型,User 一对多 Post,然后写创建用户和查询用户带文章列表的代码」。

什么时候不用

复杂报表查询

多表联查、聚合统计等复杂 SQL,ORM 生成的查询可能性能差且难以优化,此时手写 SQL 更合适。

与数据库无关的项目

如果你的应用不需要持久化存储或只用静态文件,完全不需要 ORM。

组成结构 · Anatomy

1
核心概念Core

让你用写普通代码的方式操作数据库,而不用手写 SQL。它自动把你的代码翻译成数据库指令。

2
实际表现In Practice

像翻译官——你说中文(代码),它翻译成英文(SQL)跟外国人(数据库)交流,你不用学外语。

3
与 AI 的关联AI Context

和 AI 沟通时提到「用 Prisma/Drizzle 操作数据库」,这些就是 ORM 工具。

典型使用场景

用代码操作数据库
告诉 AI「帮我用 Prisma 定义用户和文章的数据模型,写好关联关系,生成增删改查的示例代码」
想弄懂概念时
告诉 AI「用大白话给我解释什么是ORM,举个生活中的例子」

延伸阅读