Domanda

Quando si lavora con un framework MVC e si interroga il database dal controller utilizzando il modello, qual è la migliore pratica?

Il modello dovrebbe fornire una funzione molto flessibile per consentire al controller di interrogare il database?Come una chiamata dal controller in questo modo:

User->find ([
    { 
        or => [ 
            {field => 'name', value => 'john', op => '~' },
            { 
                and => [
                    { field => 'organization', value => 'acme', op => '~' },
                    { field => 'city', value => 'tokyo', op => '=' }
                ]
             }
        ],
     });

    } 

Oppure il modello dovrebbe avere un'API rigorosa che si traduca in chiamate come:

User->find_john_or_people_from_acme_in_tokyo();

Qual è il modo migliore per farlo?L'SQL dovrebbe essere in tutto il modello?O contenuto in una funzione queryFactory?Puoi indicarmi per favore la giusta direzione?Un po 'di codice del sistema operativo sarebbe fantastico.

Grazie!

È stato utile?

Soluzione

È sempre una buona pratica separare Model e DataAccess come due livelli diversi. Descrive le migliori pratiche per la separazione logica a livello di modello.Questo aiuta quando è necessario modificare le entità di accesso ai dati sottostanti senza modificare il livello ViewModel.

Migliori pratiche per partizionare il codice del modello in parti logiche in MVC?Qual è il migliore?

Altri suggerimenti

Una buona pratica è separare tutto il codice relativo al database in un livello DAO separato.In questo modo il codice della logica di business non dipende dalla particolare tecnologia di database che stai utilizzando (JDBC vs Hibernate vs JPA, ecc.) O anche dal fatto che i dati siano archiviati nel database o in qualche altro archivio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top