Tôi biết câu hỏi này có thể được đóng lại dưới dạng dựa trên ý kiến, nhưng điều tôi cần ngay bây giờ là một số ý kiến được hỗ trợ bởi các lập luận.
Tôi đang xây dựng một ứng dụng với Postgres và Ecto (Elixir) là lớp bền vững. Có một thực thể tham chiếu chính nó để bạn có thể xây dựng một cấu trúc giống như cây với nó. Tôi càng cố gắng làm điều này với Ecto, tôi càng thất vọng.
Các ORM chỉ đơn giản là một công cụ tồi để tạo các cấu trúc DB phức tạp với nhiều liên kết? Cách hướng đối tượng mà ORM cố gắng thực thi trên dữ liệu quan hệ dường như là một cách tiếp cận tồi ở đây. Đối tượng bị cô lập. Nếu họ tương tác với các đối tượng khác, họ (được cho là) gửi tin nhắn. Các chi tiết bên trong của họ nên được giấu kín. Dữ liệu quan hệ tạo thành một biểu đồ mở, minh bạch. Hai thế giới này dường như hoàn toàn không tương thích với tôi.
Tuy nhiên, ORM rất phổ biến và phổ biến. Có phải phần lớn các ứng dụng web hoạt động với các thực thể khá tách biệt chơi tốt với ORM, hoặc tại sao vậy? Đối với tôi, dường như nếu bạn muốn triển khai bất kỳ mô hình ERD trung bình phức tạp nào bằng cách sử dụng khung ORM, bạn phải hy sinh mã ngắn gọn hoặc hiệu suất.