Ich versuche herauszufinden, was der Unterschied zwischen ORM und ODM ist. Soweit ich das Konzept verstehe, bildet ORM (Object Relational Mapper) die Beziehungen zwischen Daten ab, wobei ODM (Object Document Mapper) Dokumente behandelt. Habe ich Recht, wenn ich annehme, dass mySQL ein Beispiel für ORM und MongoDB ein Beispiel für ODM ist?
Wie Sie sicher sehen können, bin ich mit der Theorie des Konzepts nicht allzu vertraut. Könnte jemand bitte die Unterschiede zwischen den beiden klären?
Ein ORM wird zwischen einem Objektmodell und einer relationalen Datenbank zugeordnet. Ein ODM wird zwischen einem Objektmodell und einer Dokumentendatenbank zugeordnet. MySQL ist kein ORM, sondern eine relationale Datenbank, genauer gesagt eine SQL-Datenbank. MongoDB ist kein ODM, sondern eine Dokumentendatenbank.
quelle
Im Wesentlichen verwendet ein ORM einen SQL-Datenbanktreiber wie ODBC, JDBC oder OLEDB, um die Objektnotation in eine relationale Notation zu übersetzen, und ein ODM verwendet eine JSON- oder JSONB-API, um die Objektnotation in eine Dokumentnotation zu übersetzen.
Unter der Haube gibt es verschiedene Arten von Implementierungen.
PS: JSONB ist eine JSON-Textdokumentnotation, die in einem von MongoDB verwendeten Binärformat gespeichert ist.
quelle
Wenn Sie zum ersten Mal lernen, wie Sie mit Datenbanken arbeiten, gibt es zwei Arten von Datenbankeinstellungen: ORM (Object Relation Mapping) und ODM (Object Document Mapping).
ORM, das ein Objekt mit einer relationalen Welt abbilden soll, konvertiert grundsätzlich Daten zwischen inkompatiblen Typen in objektorientierten Programmiersprachen. ORM packt die implementierungsspezifischen Details von Speichertreibern in eine API (Anwendungsprogrammschnittstelle) und ordnet die relationalen Felder einem Objektelement zu. Wenn ich beispielsweise eine Tabelle mit Mitarbeitern habe, wird diese für alle Mitarbeiter einem einzelnen Objekt zugeordnet, mit verschiedenen Methoden.
ODM hingegen ist ein Object Document Mapper, der Objekte mit einer Dokumentendatenbank wie MongoDB abbildet.
Der Hauptunterschied besteht darin, dass ORM für MySQL-Datenbanken vorgesehen ist, während ODM die Zuordnung für die Dokumentendarstellung von Daten übernimmt. Der beste Weg, sich daran zu erinnern, was ORM tut, wäre, es als eine Excel-Tabelle mit Zeilen und Spalten zu betrachten. Wenn Sie dieses Setup verwenden, möchten Sie sicher sein, dass Sie einen guten Plan haben, wie Sie die aktuelle Anwendung angehen möchten. Es sind nicht so viele Änderungen zulässig wie bei ODM. Mit ODM können wir problemlos neue Felder und Eigenschaften hinzufügen. Mit ORM müssen Sie jedoch beim Hinzufügen eines neuen Felds berücksichtigen, dass nichts leer bleibt, sodass ein Wert als Standard festgelegt werden muss, es sei denn, Sie möchten in jedes Feld gehen und Änderungen vornehmen.
quelle
Mongoose ist ein gutes Beispiel für ODM (Object Data Model) für MongoDB, in dem Sie Operationen mit Objekten direkt ausführen können und das in die entsprechende Abfrage und das entsprechende Schema übersetzt wird. Es kann hier unter https://mongoosejs.com/ gefunden werden.
quelle