Originariamente inviato da AndreaZani


Ma hai pensato ad un modo per ottimizzare le tabelle? Cosa hai scelto come struttura del database?

Personalmente, se non è assurdo nel tuo caso, io costruirei una tabella con questi campi:

nome personaggio
voto gennaio
voto febbraio
voto marzo
...
voto dicembre

Quindi con una sola query puoi prendere tutti i dati che vuoi...

Ciao

Adesso non sono in ufficio e non posso accedere al server Oracle. Ma ho un caso reale. Si tratta di far vedere, per un dato utento connesso, la sua giornaliera, di quel mese e per quell'anno.
La giornaliera si presenta come una tabella pivot. In alto ci sono i giorni, varibili da 28 a 31 secondo l'anno e il mese. A sinistra, nella prima colonna ci sono i nomi delle commesse. All'incrocio tra commessa e giorno, vi sono le ore lavorate. Naturalmente l'ultima colonna a destra e l'ultima riga in basso sono per i totali.
Premesso che non ricordo bene, ma una cosa è certa. La tabella era a struttura verticale, con i campi:
id_utente
id_commessa
data
ore

La visualizzazione nel computer dell'utente viene fatta tramite una paginetta asp (NO C### SED VBSCRIPT) ed è stata fatta non da una persona esperta ma da una mia collega, alla sua prima esperienza in asp (ma non nella logica di programmazione )
E la cosa funziona e pure bene direi.

Perciò, a Sonia, ma che te frega, tanto è il motore che lavora. Guarda che certi colcoletti che per un umano sono difficili, il computer li esegue molto bene.

Comunque, se trovi un modo per farti le tabelle pivot migli
ore, ti prego di farne partecipe pure noi. Ciao

ps. aggiungo l'uso delle StoredProcedure, che limitano notevolmente il tempo di dialogo tra client e server.