Quelle est la différence entre un ORM et un ODM?

J’essaie de comprendre la différence entre ORM et ODM, pour autant que je comprenne le concept, ORM (Object Relational Mapper) mappe les relations entre les données, où ODM (Object Document Mapper) traite les documents. Ai-je raison de supposer que mySQL est un exemple d’ORM et que MongoDB est un exemple d’ODM?

Je suis sûr que vous pouvez voir que je ne connais pas très bien la théorie du concept. Quelqu’un pourrait-il clarifier les différences entre les deux?

MySQL est un exemple de firebase database relationnelle – vous utiliseriez un ORM pour traduire entre vos objects dans le code et la représentation relationnelle des données.

Des exemples d’ORM sont nHibernate , Entity Framework , Dapper et plus encore …

MongoDB est un exemple de firebase database de documents – vous utiliseriez un ODM pour traduire entre vos objects dans le code et la représentation de document des données (si nécessaire).

Mandango est un exemple d’ODM pour MongoDB.

Un ORM mappe entre un modèle d’object et une firebase database relationnelle. Un ODM mappe entre un modèle d’object et une firebase database de documents. MySQL n’est pas un ORM, c’est une firebase database relationnelle, plus précisément une firebase database SQL. MongoDB n’est pas un ODM, c’est une firebase database de documents.

Essentiellement, un ORM utilise un pilote de firebase database SQL tel que ODBC, JDBC ou OLEDB pour convertir la notation d’object en notation relationnelle et un ODM utilise une api JSON ou JSONB pour traduire la notation d’object en notation de document.

Il existe différents types d’implémentations sous le capot.

PS: JSONB est une notation de document texte JSON stockée dans un format binary utilisé par MongoDB.