Sto mettendo insieme un'app web con relazioni di database relativamente complesse ma standard. Ho notato che ogni volta che uso un ORM, in python / ruby / php ecc, in generale, vengono generate molte query. Questo sta affermando l'ovvio. Generalmente gli ORM creano più query del necessario per portare a termine il lavoro. Non sono perfetti.
Potrei creare queste query personalmente. Sembra vecchia scuola ma, molto probabilmente, l'app funzionerà più velocemente e non dovrò scherzare con gli ORM. Invece mi prenderò in giro con SQL. Preferirei scherzare con SQL, piuttosto che con una libreria specifica per lingua / versione.
Non ho paura degli ORM, li ho usati con grande successo in passato.
Mi chiedo come le persone in genere (a livello macro) organizzano il loro codice per supportare query SQL non elaborate.
Ad esempio, supponiamo che io utilizzi un'architettura MVC come nella mia applicazione.
- Le mie viste sono in HTML con una libreria allettante.
- I miei controller ottengono i dati dai modelli e li inviano alle viste.
- I miei modelli mappano singole / più tabelle db a proprietà e metodi in una struttura simile a una classe per un facile accesso.
Dove dovrebbero essere inseriti i comandi sql? Posso immaginare che potrebbe essere una ricetta per codice sciatta o modelli con chilometri di query SQL. Inoltre, renderebbe impossibile aggiungere qualcosa come un ordinamento predefinito. E torniamo di nuovo agli ORM.
Se dovessi pensare a questo, potrei creare un helper sql per ogni modello, che contiene la query. Ti chiedi se ci sono altri modi