Salve a tutti... mi sono studiato un po di manuali su DB relazionali e come si deve fare un DB.
Bene ho realizzato un qualcosa tipo questo (semplifico un pochino)
TABELLA UTENTI
ID|id_stato|id_classe|cognome|nome|user|psw
TABELLA INDIRIZZI
ID|id_utente|id_tipo|id_citta|cap|indirizzo|locali ta|PREF
TABELLA RECAPITI
ID|id_utente|id_tipo|recapito
Ho caricato 10000 utenti con 2 indirizzi a testa e 2 recapiti (mail e telefono)
La tabella indirizzi è semplificata, ma diciamo che se la città è italiana ed ha un cap solo l'id_citta da tutte le informazioni necessarie se è multi cap il campo cap definisce meglio il cap e se non è italiana ci sono altri campi che per semplicità ora non ho messo. Così non mi trovo subito chi mi fa caziatone per la tabella
Devo visualizzare in una pagina tutti gli utenti paginati a 100.
Come prima prova mi son detto tiro fuori i 100 utenti e poi ciclandoli estraggo con query i dati aggiuntivi che mi servono, così non faccio JOIN assurde. Risultato: +30secondi di risposta.
Allora ho provato a creare una JOIN tra Utenti e Indirizzi e diciamo che su DB non ci mette moltissimo, ma come faccio ad aggiungerci anche i 2 recapiti?
Voi come risolvereste il problema?
Io tutte le volete che provo a dividere i dati in tabelle come dicono i manuali mi trovo con query che ciclano molto... l'ultima che ho fatto girare mi ha spento il pc!!!!!!
Ovvi che se metto tutti i dati su una tabella risolvo in un nanosecondo, ma dato che si dovrebbe avere un DB così strutturato poi come li tiro fuori i dati senza uccidere la macchina?