A volte quando si codifica un'applicazione client-server, il client deve effettuare un aggiornamento collettivo. Ad esempio: "segna tutti gli ordini in sospeso come inviati". Per implementarli, in genere scrivo specifici metodi di controller, che eseguono l'operazione di database richiesta.
Mi è venuto in mente che teoricamente questo potrebbe essere fatto senza specifici metodi di controllo. Con un approccio semplice, il client può scorrere gli ordini in sospeso (a cui può già accedere) e contrassegnarli come inviati (di nuovo, ha già una chiamata per farlo). Il problema con questo approccio è che provoca molti round trip di rete, aumentando la latenza.
Ma questo mi ha fatto meravigliare, esiste una specie di linguaggio generico di query / aggiornamento client-server? Esiterei per consentire SQL dal client al server, a meno che non sia possibile creare alcuni controlli molto stretti per evitare l'iniezione SQL. Ma in linea di principio voglio che il client comunichi al server "UPDATE orders SET status = 'spedito' WHERE status = 'in sospeso'" - e il server ad agire in questo modo, mentre applica tutti i controlli di sicurezza applicabili all'utente corrente.
Ho pensato che probabilmente questa soluzione ha già una soluzione, ma non conosco il suo nome, quindi questa domanda. Qualsiasi aiuto apprezzato.
Modifica: sulla riflessione, forse questa è una cattiva idea. Quando codifico esplicitamente un controller, posso garantire che il database abbia indici appropriati per rendere efficiente l'aggiornamento. Se la query esiste solo sul front-end, assicurarsi che gli indici appropriati siano disponibili crea una scomoda dipendenza front / back.