Ho il requisito che gli utenti debbano essere in grado di specificare condizioni di filtro per un tipo di entità attraverso una GUI su un thin client. Queste condizioni devono essere
- comodo da generare, il che significa che la GUI dovrebbe guidare gli utenti tanto quanto possibile. Non dovrebbero scrivere SQL o altro.
- memorizzati con un timestamp, un ID utente, una descrizione e altro ...
- caricato e modificato
- riutilizzabile da altri utenti
- utilizzato per caricare entità corrispondenti dal DB tramite un framework ORM. Idealmente potrei generare un predicato da loro - SQL o forse un'espressione, che l'ORM può tradurre in SQL
Nel mio caso gli utenti specificano una condizione per i clienti, per chi devono essere generate le fatture. Ci saranno molte diverse "selezioni dei clienti".
Penso che il modello di specifica potrebbe essere una buona corrispondenza, ma non è stato possibile trovare alcun esempio, dove le specifiche sono costruite attraverso una GUI, serializzata e memorizzata / ricaricata / modificata tramite un app server e utilizzata per recuperare le entità corrispondenti.
Sto forse trascurando il modo standard per fare una cosa del genere? I colleghi hanno suggerito di costruire semplicemente il predicato SQL WHERE sul lato client, ma non mi piace. Il client non dovrebbe sapere molto sulla persistenza (nomi di colonne ...) e dovrebbe essere consentito solo l'uso di determinati predicati, ma non di altri. Inoltre, dovrei analizzare queste stringhe in predicati separati quando ricarico una condizione per visualizzarle in modo intuitivo.