Mi è stato chiesto di creare un'applicazione web per consentire agli utenti di interrogare un particolare database più facilmente. Semplificando, questo database ha solo due tabelle, report e prodotti. La relazione tra i due è che un rapporto può riferirsi a uno o più prodotti. L'applicazione web dovrebbe consentire agli utenti di specificare in modo grafico (anche in una forma semplice) un elenco di criteri di ricerca per recuperare un sottoinsieme di report. Ad esempio, un utente potrebbe chiedere tutti i report in un certo periodo, con "(campo1 = valore1 e campo2 = valore2) o (campo3 < > valore3)", che si riferiscono al prodotto A e al prodotto B. Questa è la descrizione di i requisiti di base; idealmente l'applicazione web dovrebbe anche consentire agli utenti di salvare e combinare le loro query (ad esempio con operatori "UNION, EXCEPT, INTERSECT") e ordinare dinamicamente i risultati. Inoltre, i prodotti possono essere raggruppati in livelli gerarchici e un utente potrebbe chiedere tutti i report che si riferiscono a tutti i prodotti in un determinato livello.
In questo momento la tabella dei rapporti ha solo 114.000 righe ma sta crescendo rapidamente: esiste da 27 anni, ma l'anno scorso sono state inserite 18.000 righe!
Quindi, la mia domanda è come affrontare lo sviluppo di questa applicazione. Prima di tutto, è necessario sviluppare una NUOVA applicazione o c'è qualcosa che posso usare out-the-box (con qualche configurazione iniziale, ovviamente)? Altrimenti, credo di poterlo scrivere io stesso con CodeIgniter e JQuery, ma vorrei sapere se ci sono altri framework o componenti PHP o JAVA utili per velocizzare il mio lavoro.
Infine mi piacerebbe sentire la tua opinione sui punti critici di cui dovrei preoccuparmi.