Ich weiß, dass diese Frage möglicherweise als meinungsbasiert geschlossen wird, aber was ich jetzt brauche, sind einige Meinungen, die durch Argumente gestützt werden.
Ich erstelle eine Anwendung mit Postgres und Ecto (Elixier) als Persistenzschicht. Es gibt eine Entität, die auf sich selbst verweist, sodass Sie damit eine baumartige Struktur erstellen können. Je mehr ich versuche, dies mit Ecto zu tun, desto frustrierter werde ich.
Sind ORMs einfach ein schlechtes Werkzeug zum Erstellen komplexer DB-Strukturen mit vielen Assoziationen? Die objektorientierte Art und Weise, wie ORM versucht, relationale Daten durchzusetzen, scheint hier ein schlechter Ansatz zu sein. Objekte sind isoliert. Wenn sie mit anderen Objekten interagieren, senden sie Nachrichten. Ihre inneren Details sollten verborgen bleiben. Relationale Daten bilden ein offenes, transparentes Diagramm. Diese beiden Welten scheinen mir völlig unvereinbar zu sein.
ORMs sind jedoch sehr verbreitet und beliebt. Funktioniert die Mehrheit der Webanwendungen mit eher isolierten Entitäten, die gut mit ORM funktionieren, oder warum ist das so? Es scheint mir, dass Sie, wenn Sie ein durchschnittlich komplexes ERD-Modell mithilfe eines ORM-Frameworks implementieren möchten, entweder auf präzisen Code oder auf Leistung verzichten müssen.