Вопрос по orm, database, odm – В чем разница между ORM и ODM?

121

Я пытаюсь выяснить, в чем разница между ORM и ODM, насколько я понимаю концепцию, ORM (Object Relational Mapper) отображает отношения между данными, где ODM (Object Document Mapper) работает с документами. Прав ли я, предполагая, что mySQL является примером ORM, а MongoDB является примером ODM?

Как я уверен, вы можете видеть, я не слишком знаком с теорией концепции. Может ли кто-нибудь прояснить разницу между ними?

Ваш Ответ

4   ответа
0

Mongoose является хорошим примером ODM (Object Data Model) для MongoDB, в котором вы можете напрямую выполнять операции с объектами, и это переводится в соответствующий запрос и схему. Это можно найти здесь наhttps://mongoosejs.com/

22

ORM сопоставляет объектную модель и реляционную базу данных. ODM сопоставляет объектную модель и базу данных документов. MySQL это не ORM, этоРеляционная база данных, точнее, база данных SQL. MongoDB - это не ODM, этоБаза данных документов.

Отличное объяснение! Мне до сих пор не ясно, являются ли ODM / ORM уровнями абстракции, предоставляемыми базовой базой данных или библиотеками драйверов, или это отдельный уровень между драйвером и БД? Может ли быть драйвер ORM для базы данных документов и наоборот? pooya13
142

MySQL является примером реляционной базы данных - вы использовали бы ORM для перевода между вашими объектами в коде и реляционным представлением данных.

Примеры ORM:NHibernate,Entity Framework,щеголеватый и больше...

MongoDB является примером базы данных документов - вы бы использовали ODM для перевода между вашими объектами в коде и представлением данных в документе (если это необходимо).

Mandango пример ODM для MongoDB

Круто, спасибо за объяснение! Odyss3us
мангуст, монгоид все ODM 's. Я предполагаю, что для noSQL у нас могут быть только ODM. Surya
Так что вы'Вы говорите, что документы - это документы ... это имеет смысл! HashRocketSyntax
Вы можете иметь гибридные платформы ORM / ODM, такие какMORMot для Delphi,Учение о PHP или жеHibernate OGM для Java, И некоторые базы данных SQL имеют сильную поддержку документов, например, отличный PostgresSQL, который имеетТипы данных JSON или JSONB так что вы можете смешивать RDBMS и Document-ориентированное хранилище в одной таблице, включая индексы и расширенный запрос! Arnaud Bouchez
мангуст это ODM или ORM? Y.L.
8

В сущности, ORM использует драйвер базы данных SQL, такой как ODBC, JDBC или OLEDB, для перевода нотации объекта в реляционную нотацию, а ODM использует API JSON или JSONB для перевода нотации объекта в нотацию документа.

Есть разные виды реализаций под капотом.

PS: JSONB - это нотация текстового документа JSON, хранящаяся в двоичном формате, используемом MongoDB.

Postgres тоже поддерживает JSONB Surya
технически говоря, ODBC и JDBC - это спецификации API, которые реализует драйвер. asgs

Похожие вопросы