Scrivo spesso piccole applicazioni (basate sul Web o in altro modo) che richiedono un uso intensivo del database. Ho provato vari modi di gestire dove mettere le query sql reali (una sorta di sistemi ORM ad hoc). Questi includono:
-
Modelli che si costruiscono da soli e consentono solo a SQL di essere all'interno di un modello.
-
Una sorta di metodo in stile factory in cui i modelli sono creati da una classe factory a cui è consentito conoscere SQL.
-
Una terza entità che mappa i modelli in base ai loro campi / chiavi nel database e genera Codice SQL al volo basato su questo.
C'è una conoscenza comune di quale metodo sia il migliore? O un altro modo in cui mi sono perso?
Chiaramente molto sarà basato sul contesto del sistema stesso, che per me è solitamente quello di produrre strumenti leggeri o framework di utilità. Nella sperimentazione, non ho mai trovato nessuno di loro che si sentisse intuitivamente "giusto" e non goffo, ma non voglio nemmeno andare a un framework completo come Django o Ruby - sia perché gli strumenti che creo sono in una varietà di lingue e perché di solito non garantiscono quel livello di impronta circostante.