Frage Warum die Verwendung eines ORM mit NoSql (wie MongoDB) [geschlossen]


Entschuldigung, aber macht das Sinn? Das ORM bedeutet: Object Relational Mapper, und hier gibt es Relational, und NoSql ist nicht RDBMS! Warum also die Verwendung eines ORM in einer NoSql-Lösung? weil ich Updates von ORMs für Python sehe!


5
2017-11-08 14:03


Ursprung


Antworten:


Erstens sind sie nicht ORM (da sie keine Beziehungen zwischen ihnen haben), sind sie ODM (Objekt Dokument Mapper)

Die Hauptverwendung dieser ODM-Frameworks ist hier dieselbe wie die einige gemeinsame Eigenschaft von ORM

  • Bereitstellung der Abstraktion über Ihr Datenmodell. Sie können Ihre Daten unabhängig von der Zielsoftware in Ihrer Anwendung modellieren lassen.
  • Die meisten ODMs bauen auf die vorhandenen Sprachfunktionen auf und verwenden stattdessen das vertraute Muster, um Daten zu manipulieren, um neue Sprachsyntaxen der neuen Software zu lernen.

Wenn ich Mongoid (Ruby ODM für Mongo) verwende, kann ich Mongo so abfragen, wie ich es im aktiven Modell mache (meistens).

Da sie keine Beziehung zwischen ihnen haben, bieten diese ODMs die Möglichkeit, die Beziehungen in Ihren Modellen zu definieren und die Beziehungen zu simulieren. Diese werden alle vom Entwickler abstrahiert, damit sie genauso wie bei den relationalen Daten codieren können.


8
2017-11-08 14:20



ORM ist eine Abstraktionsschicht. Der Wechsel zu einer anderen Engine ist viel einfacher, wenn die Abfragen abstrahiert und hinter einer gemeinsamen Oberfläche verborgen werden (in der Praxis funktioniert das nicht immer so gut, aber es ist immer noch einfacher als ohne).


2
2017-11-08 14:07



Interessante Frage. Obwohl NoSQL-Datenbanken keinen Mechanismus zum Identifizieren von Beziehungen aufweisen, bedeutet dies nicht, dass keine logischen Beziehungen zwischen den von Ihnen gespeicherten Daten bestehen. In den meisten Fällen bearbeiten und erzwingen Sie diese Beziehungen manuell, wenn Sie eine NoSQL-Datenbank verwenden.

Daher denke ich, dass ORMs Ihnen hier noch helfen können. Wenn Sie Daten haben, die verwandt sind, aber eine NoSQL-Datenbank verwenden müssen, kann Ihnen ein ORM dennoch bei der Verwaltung sauberer Daten helfen.

Beispielsweise, Verwende ich Amazon SimpleDB für die niedrigeren Kosten, aber meine Daten haben noch Beziehungen, die gepflegt werden müssen. Momentan mache ich das manuell. Vielleicht würde mir auch ein ORM helfen.


2
2017-11-08 14:13