Abbiamo un'app che viene utilizzata per il data mining sul nostro database client.
Gli usi tipici includono ottenere un elenco di client e i loro indirizzi e-mail, eseguire report sulle transazioni degli utenti tra determinate date e client di ritorno che vivono in un'area specifica.
I requisiti funzionali di alto livello sono:
- Ogni query di data mining deve essere in grado di esportare in Excel.
- I parametri devono essere supportati (in modo da poter filtrare i risultati, ecc.).
- Altre app dovrebbero essere in grado di accedere a queste query e ai relativi risultati.
È stato implementato come segue:
- Viene creata una funzione di database per ogni query SQL.
- C'è anche una tabella che contiene i dettagli di ogni funzione e i parametri richiesti come i loro tipi.
- Esiste un front-end Web in cui vengono mantenute le query SQL e può essere eseguito ed esportato.
- Esiste un servizio Web che altre app possono utilizzare per eseguire query. Il metodo per eseguire una query restituisce un set di dati e ottiene i parametri dei passaggi e i relativi valori in XML.
La nostra soluzione attuale funziona, ma ci sono alcuni problemi con il mantenimento delle centinaia di funzioni DB (sarebbe necessario utilizzare le funzioni - non potremmo semplicemente memorizzare SQL nelle tabelle?). Ho anche alcuni problemi di sicurezza riguardo all'iniezione SQL dato che il nostro front-end consente fondamentalmente agli utenti di inserire qualsiasi SQL.
Qualcuno ha dovuto sviluppare qualcosa di simile e quale approccio hai usato? Qual è stato il tuo ragionamento per l'utilizzo di tale approccio?