Uso un framework Web MVC per creare un'applicazione che contiene una gerarchia:
Location <1-N> Devices <N-M> Services
Ho un numero di posizioni. Ogni posizione può avere diversi dispositivi (rappresentati da una relazione 1-N nel database). Ogni dispositivo esegue servizi. I servizi (come http, ftp, ecc.) Sono definiti in una tabella aggiuntiva e sono connessi ai dispositivi utilizzando una relazione N-M.
Finora ho un modello per ciascuna entità e un controller di posizione per le operazioni CRUD. Poiché i dispositivi appartengono in qualche modo alla posizione, tutte le funzioni CRUD del dispositivo si trovano anche nel controller di posizione. I servizi hanno il proprio controller. L'URL per accedere ai dati è strutturato in questo modo:
/locations/ # to get an overview of the locations
/locations/*id*/ # to view the details of one location
/locations/*id*/edit # to edit the details of one location
/locations/*id*/device/*deviceid*/ # to view details of a device
/locations/*id*/device/*deviceid*/edit # to view details of a device
/services/ # list of all the services
/services/*id/ # view details of a service
Nota: esistono anche URL per creare ed eliminare voci, che sono omesse. Ma penso che tu abbia avuto l'idea.
Ora alle mie domande: Sembra sbagliato, e penso che sia sbagliato mettere tutte le funzioni all'interno del controller di posizione, quindi vorrei spostarle in modo da avere controller separati. D'altra parte, mi piace la struttura dell'URL, poiché rappresenta piuttosto bene la gerarchia dei dati. Inoltre mi piace quando la struttura dell'URL corrisponde ai controller.
Qual è la soluzione "migliore": controller separati con URL combinati? Controller separati, URL separati? O un controller combinato con URL combinati?