【后端】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查询和数据存取方式。
    提供更方便的查询接口,使得文档型数据库的操作更符合面向对象编程习惯。
相关推荐
小陈工3 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
科技小花8 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸8 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain8 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希8 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神8 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员9 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java9 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿9 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴9 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存