【后端】ORM / ODM

长期不定期更新,建议关注收藏点赞。


概述

  • ORM(Object-Relational Mapping,对象关系映射):面向关系型数据库,ORM将对象映射到数据库的表和行(例如MySQL、PostgreSQL)。
  • ODM(Object Data Mapping,对象数据映射):面向非关系型数据库,ODM将对象映射到文档型数据库(例如MongoDB)的文档。
  • 如果你用的是 MongoDB ➜ 选择 ODM(Mongoose)
    如果你用的是 MySQL / PostgreSQL ➜ 选择 ORM(Prisma、Sequelize)
  • 对比
特性 ORM ODM
数据库类型 关系型 文档型(NoSQL)
数据结构 表格 JSON 文档
适合场景 严格结构、复杂关系 灵活结构、快速迭代
常用工具 Sequelize, Prisma, TypeORM Mongoose
学习曲线 相对复杂(SQL) 相对简单(更贴近 JS)

ORM

项目 内容
全称 Object-Relational Mapping
适用数据库 关系型数据库(如 MySQL、PostgreSQL、SQLite)
数据结构 表(Tables)、行(Rows)、列(Columns)
常用 Node.js 框架 Sequelize、TypeORM、Prisma
使用场景 使用结构化数据、有复杂关系(如一对多、多对多)的场景

ODM

项目 内容
全称 Object-Document Mapping
适用数据库 文档型数据库(如 MongoDB)
数据结构 文档(Document),类 JSON 结构
常用 Node.js 框架 Mongoose
使用场景 非结构化数据、灵活 schema、嵌套对象较多的场景

ODM(Object Data Mapping,对象数据映射)是指将应用程序中的对象(通常是面向对象编程语言中的对象)映射到数据库中的数据记录(尤其是文档型数据库)。ODM是ORM(Object-Relational Mapping,对象关系映射)的一种扩展,专门用于对象和非关系型数据库(如MongoDB)之间的映射。

  • ODM的基本概念:
    对象:应用程序中的数据结构,通常是一个类或实例,代表业务数据(如用户、订单、商品等)。
    数据:存储在数据库中的数据记录,例如MongoDB中的文档。
    映射:ODM通过将应用程序对象的属性和数据库记录之间建立映射关系,实现对象和数据之间的转换。
  • ODM的作用:
    提供高层抽象,简化了与数据库的交互。开发者可以像操作对象一样操作数据库。
    处理对象和数据库之间的数据转换,开发者不需要关心底层的SQL查询和数据存取方式。
    提供更方便的查询接口,使得文档型数据库的操作更符合面向对象编程习惯。
相关推荐
星恒随风2 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
吴名氏.4 小时前
Java转AI Agent教程(第十三周)混合检索与重排
java·数据库·人工智能·ai·ai agent
爱码少年4 小时前
Springboot下如何将CSV文件数据导入H2、Mysql数据库表
数据库·mysql·csv
可乐ea5 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
阿义有问题6 小时前
MySQL 迁移达梦全流程实战:DTS 七步图解 + 对象名全大写适配(附踩坑清单)
数据库
猫猫不是喵喵.9 小时前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
lsc_blog10 小时前
听到优化风声,先准备能由自己掌控的事
数据库·分布式·中间件·职场和发展·重构
墨痕诉清风10 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
Ashe81313 小时前
MySQL 慢日志先别急着加索引:三个指标能拦掉大半误判
数据库
ClouGence13 小时前
最基础的异构数据库 DDL 同步,我们踩过哪些坑?
数据库·mysql·postgresql