Un colega mío está diseñando consultas SQL como la siguiente para producir informes, que se muestran en archivos de Excel a través de un externo consulta de datos. Actualmente, solo se requieren procesos de informes en el DB (sin operaciones CRUD).Cuándo usar un ORM (Sequel, Datamapper, AR, etc.) versus SQL puro para consultar
Estoy tratando de convencerlo de que sería mejor usar un ORM ruby para poder mostrar los datos en una aplicación de rieles/sinatra.
A pesar de las obvias ventajas de mostrar los datos, ¿qué ventajas tiene aprender cómo utilizar un ORM como Sequel o Datamapper?
Las consultas SQL que está escribiendo son claramente bastante complejas, y siendo relativamente nuevo en SQL, a menudo se queja de que es muy lento y confuso. ¿Es posible escribir consultas extremadamente complejas con un ORM? y si es así, ¿cuál es el más adecuado (he oído que Sequel es bueno para dbs heredados)? y ¿cuáles son las ventajas de aprender Ruby y usar un ORM versus seguir con SQL simple, al hacer consultas complejas de bases de datos?
También debería tener en cuenta que creo que los diseñadores de ORM deben buscar continuamente cómo impulsar esa línea aún más, de modo que los buscadores puedan manejar las consultas más complejas de forma más simple que con SQL. Aunque aún no estoy convencido, eliminaremos completamente el SQL. – dkubb
¿Qué ORM es mejor usar con una nueva aplicación de Rails 3 contra una base de datos heredada de MySQL 5.1? No espero ejecutar una migración contra esta base de datos (aunque el esquema puede cambiar de vez en cuando), pero sin duda le escribiré. –
Marca, a menos que su esquema coincida con las convenciones de ActiveRecord, sus opciones son DataMapper y Sequel. Obviamente, estoy predispuesto hacia Datamapper, pero Sequel es un buen ORM también. Sin embargo, diré que uno de los objetivos principales con DataMapper fue permitir que se asignara a los esquemas heredados. Sequel es mejor si desea bajar al metal y escribir declaraciones similares a SQL al construir consultas más complejas. – dkubb