この質問は意見に基づくものとして締めくくられるかもしれませんが、今必要なのは議論によって裏付けられたいくつかの意見です。
PostgresとEcto(Elixir)を永続化レイヤーとして使用してアプリケーションを構築しています。それ自体を参照するエンティティがあるため、それを使用してツリーのような構造を構築できます。Ectoでこれをやろうとすればするほど、いらいらします。
ORMは、多くの関連付けを持つ複雑なDB構造を作成するための単なる悪いツールですか?ORMがリレーショナルデータに適用しようとするオブジェクト指向の方法は、ここでは悪いアプローチのようです。オブジェクトは分離されています。それらが他のオブジェクトと相互作用する場合、それらは(想定されている)メッセージを送信します。彼らの内面の詳細は隠されたままである必要があります。リレーショナルデータは、開いた透明なグラフを形成します。これら二つの世界は私と完全に両立しないようです。
しかし、ORMは非常に一般的で人気があります。Webアプリケーションの大部分はORMでうまく機能する分離されたエンティティで動作しますか、それはなぜですか?ORMフレームワークを使用して平均的に複雑なERDモデルを実装する場合は、簡潔なコードまたはパフォーマンスを犠牲にする必要があるように思われます。