Saya tahu pertanyaan ini mungkin ditutup berdasarkan opini, tetapi yang saya butuhkan saat ini adalah beberapa pendapat yang didukung oleh argumen.
Saya membangun aplikasi dengan Postgres dan Ecto (Elixir) sebagai layer persistence. Ada entitas yang mereferensikan dirinya sendiri sehingga Anda dapat membangun struktur seperti pohon dengannya. Semakin saya mencoba melakukan ini dengan Ecto, semakin frustrasi saya.
Apakah ORM hanyalah alat yang buruk untuk membuat struktur DB yang kompleks dengan banyak asosiasi? Cara berorientasi objek yang mencoba diterapkan oleh ORM pada data relasional tampaknya merupakan pendekatan yang buruk di sini. Objek terisolasi. Jika mereka berinteraksi dengan objek lain, mereka (seharusnya) mengirim pesan. Detail batin mereka harus tetap disembunyikan. Data relasional membentuk grafik yang terbuka dan transparan. Kedua dunia ini sepertinya sama sekali tidak cocok untukku.
Namun, ORM sangat umum dan populer. Apakah sebagian besar aplikasi web bekerja dengan entitas yang agak terisolasi yang cocok dengan ORM, atau mengapa begitu? Tampak bagi saya bahwa jika Anda ingin menerapkan model ERD rumit rata-rata menggunakan kerangka kerja ORM, Anda harus mengorbankan kode ringkas atau kinerja.