2012-03-20 11 views
9

Sto cercando di aggiungere un ORM alla mia app Sinatra esistente. Sono passato attraverso Datamapper, Sequel e ActiveRecord anche se non ho ancora provato ActiveRecord.Aggiunta di un ORM a un'app Sinatra; Esiste uno ideale con meno problemi e buone prestazioni?

Datamapper sembra facile, ma sono costantemente di fronte a un problema discusso in "What ORM to use in one process multiple db connections sinatra application?", ma non è stato in grado di comprendere la soluzione e la causa principale per esso.

Ci sono suggerimenti per scegliere l'ORM appropriato e orientato alla prestazione?

+0

Qual è il tuo problema con DataMapper esattamente? –

+0

problema esatto: http://groups.google.com/group/datamapper/tree/browse_frm/month/2010-08/d45961670db1ede3?rnum=71&_done=%2Fgroup%2Fdatamapper%2Fbrowse_frm%2Fmonth%2F2010-08%3F – abhijit

+1

In la mia esperienza, l'ORM non è un problema quasi altrettanto grande per le prestazioni di come si definiscono il database e le query. Da quello che ho visto, ActiveRecord, Sequel e Datamapper sono tutti in grado di generare un buon SQL. –

risposta

7

Sequel è abbastanza veloce ma presenta meno funzioni mentre ActiveRecord ha molte funzioni interessanti che portano a problemi di prestazioni.

Ma, nella maggior parte dei casi, le prestazioni dell'ORM non dovrebbero diventare un problema con un uso saggio. Di solito si dovrebbe pensare alle prestazioni del database e alla progettazione dell'applicazione ma non alle prestazioni ORM.

Se hai bisogno di qualcosa di semplice e diritta, dovresti usare Sequel, ma per le grandi applicazioni con molti moduli di nesting preferisco ActiveRecord.

+0

Ciao, grazie per la risposta ... per guardare sequel mi riferisco a questo - https: //github.com/rtomayko/sinatra-sequel, mi puoi suggerire un blog o un sito che dimostrano l'uso del sequel bene. Grazie. – abhijit

+2

Credo che la home page di Sequel funzionerà. http://sequel.rubyforge.org/documentation.html – fl00r

+0

+10 Grazie mille ... – abhijit

Problemi correlati