| ▲ | zbentley an hour ago | |
> Wouldn't you consider defining the schema doing the domain modeling? No, because if the schema is the only reference for data models, developers on any sufficiently large team will come up with extremely widely varied queries to access equivalent information. Those are more likely to be incorrect (someone with domain expertise on one set of tables might miss that authoritative data needs to be joined/queried from elsewhere), harder to update when schemas change (more client code changes to alter and test), and more likely to miss performant techniques to query data. Those can all be addressed with disciplined use of views or common utility SQL snippets or functions, but ORMs also get you to that point without requiring as much ongoing discipline, care, and feeding. | ||
| ▲ | ibejoeb an hour ago | parent | next [-] | |
> Those can all be addressed with disciplined use of views... Totally agree. Views as a data API is the best way to take advantage of the facilities that the database itself offers and guarantees enforces consistency across disparate clients. | ||
| ▲ | ElectricalUnion an hour ago | parent | prev [-] | |
> developers on any sufficiently large team will come up with extremely widely varied queries to access equivalent information. Ah yes, the famous database integration anti-pattern. > but ORMs also get you to that point without requiring as much ongoing discipline, care, and feeding. [citation needed] The fact that you have being practising "database integration" won't suddenly disappear just because you used a ORM. In fact I expect even worse database integration from your average ORM user, as people that uses ORM blindly often don't care (to their own detriment) about "silly issues" like data provenance or persistence mechanical sympathy. At some point I expect the DBAs of such database integration nightmares will have to start handling stuff like column-level security and row-level security to prevent naive users from shooting themselves in the foot. | ||