View Single Post
Old 29-07-2009, 10:20   #4
john_revelator
Senior Member
 
L'Avatar di john_revelator
 
Iscritto dal: Jul 2007
Messaggi: 1092
Ciao. Allora, un punto di partenza da cui iniziare a capire cosa si intenda per normalizzazione di un database è wikipedia.

http://it.wikipedia.org/wiki/Normali...e_del_database.

Per quanto concerne il tuo problema, sebbene ovviamente non conosca completamente la tua situazione, a grandi linee strutturerei la cosa in questo modo.

Tabella materiali

id_materiale (semplice numero progressivo)
nome_materiale

Tabella_analisi
id (numero progressivo)
id_materiale (il codice che fa riferimento alla chiave primaria della tabella materiali)
valore_numerico

In questo modo, come ti accennavo ieri, potresti fare una semplice join tra le due tabelle e ricavare agevolmente il nome del materiale e la relativa media, mantenendo i dati coerenti.

La query sarebbe questa

Codice:
select  m.nome_materiale,avg(a.valore_numerico) as media
from materiali as m
inner join analisi as a
on m.id_materiale = a.id_materiale
group by a.id_materiale
order by a.id_materiale
testata su mysql ma sono tutte istruzioni sql standard. Per quanto riguarda Base non ci ho mai dovuto lavorare ma da quel poco che ho visto non mi piace per nulla (esempio banale trovo molto diseducativo nell'apprendimento dell'sql che metta i nomi dei campi e delle tabelle tra apici e anche la sua interpretazione dell'sql la trovo molto "personale"). De gustibus.


Infine, per quanto concerne le alternative free, dipende dalle tue esigenze e dalle competenze di chi dovrà mettere mani al database. Sicuramente access e base forniscono un'interfaccia grafica più user-friendly ma se potessi ti orienterei su mysql, il più utilizzato rdbms open source al mondo. Ovviamente non saresti costretto a lavorare tramite riga di comando ma potresti ricorrere ad uno dei tanti front-end messi a disposizione. Personalmente mi trovo benissimo con sqlyog

http://download.html.it/software/vedi/2355/sqlyog/

che ti permette di gestire tramite interfaccia grafica la creazione di tabelle, la loro esportazione e quant'altro. P.S. Non so se lo stesso discorso valga per Base come per Access ma con mysql scordati di poter trascinare i campi nella griglia per la generazione delle query. Dovrai scrivertele tu ma ti si aprirà tutto un altro mondo.
john_revelator è offline   Rispondi citando il messaggio o parte di esso