mi trovo a fare un database di attività svolte da persone e ho bisogno di calcolare le ore effettive che uno svolge, quindi faccio una ipotesi:
Ho un'attività, ad esempio una manifestazione sportiva che decido di codificare con C - 3 (dove C indica il comune e 3 indica la manifestazione sportiva), ho quindi una riga di database strutturata così:
nome_intervento: Corsa di S.Caterina
codifica: C - 3
ore_svolte: xxxxxxxxxxxx - 2; xxxxxxxxxxxy - 1; xxxxxxxxxxxz - 3
xxxxxxxxxxxx, ecc -> sta ad indicare il codice fiscale della persona di riferimento.
- 2, - 1, ecc -> sono le ore che la persona ha svolto a quella determinata manifestazione.
Se io inizio a popolare la tabella di varie attività e manifestazioni, inserendo ogni volta il codice fiscale di chi partecipa, riesco poi a estrarre il dato e calcolare ad esempio nell'arco di un anno secondo la codifica C - 3 per il codice fiscale xxxxxxxxxxxx quante ore ha fatto tra tutte le manifestazioni?
Invece di dover codificare i comuni, lo fa lui in automatico con gli id.
Poi, vengono codificati anche tutti i codici fiscali (ripeterli per ogni evento occuperebbe troppo spazio). Quindi vengono codificati anche loro con un id.
Per recuperare il numero di ore di un determinato codice fiscale, puoi fare una SELECT con SUM(numero_ore), con il WHERE codice_fiscale.id = id_codice_fiscale
Spero di esser stato chiaro.
Ciao!
Ultima modifica di alemoppo : 04-12-2012 alle ore 12.59.22
lo scopo di codificare il comune, è che alla fine dell'anno io devo essere in grado di fare una statistica, ovvero cerco tutti i C - 3 e vedo le manifestazioni sportive del comune.
poi magari devo vedere a livello regionale cosa succede sul fronte assistenza alla popolazione e allora magari guardo le codifiche R - 1 (dove R = regione e 1 = assistenza alla popolazione)
Stavo guardando: se io inserisco nella tabella del database due colonne, una che si chiama nome_volontario e una che si chiama ore_volontario, se io creo due array che rispettivamente vado a mettere nella prima colonna l'array con i codici fiscali e nella seconda colonna gli array con le ore, la cosa è possibile a livello di operazioni, ad esempio se io volessi sapere in un anno quante ore ha fatto una persona in totale e poi in base alle aree ovvero la codifica C - 3?
Avere un'unica colonna ore_svolte con dentro dati relativi ha più persone non è una grande idea, perché estrarli significa dover scavare all'interno delle stringhe. Magari la ricerca riesci a farla, ma altre operazioni diventano assai più complesse
Io userei almeno due tabelle separate per gli eventi e per le ore svolte; nella seconda inserisci righe tipo ( id_evento, codice_ficale, ore_svolte ).
A quel punto puoi selezionare facilmente per evento e per codice fiscale.