В чем разница между ORM и ODM?

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

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

3 ответов


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

примеры ORMs являются nHibernate, Entity Framework, щеголеватый и многое другое...

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

Mandango является примером ODM для MongoDB.


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


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

существуют различные реализации под капотом.

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