Si, così potrebbe andare. Anche se io modificherei ancora la tabella "corsi", lasciando in questa solo l'id e il nome del corso. Poi farei un'altra tabella per il luogo dove si terrà e per le date di inizio e fine corso.Originariamente inviato da prinzart
allora se ho capito bene devo fare così:
tabella (corsi) = campi (id_corsi, nome_corso, luogo_corso, data1_corso, data2_corso)
tabella (materie) = campi (id_materie, nome_materia) le materie però sono 10 per ogni corso
tabella (allievi) = campi (id_allievi, nome, cognome, sesso, via, tel, cel, ecc...)
tabella (corsi_allievi) = campi (id_corsi, id_allievi)
tabella (corsi_materie) = campi (id_corsi, id_materie)
tabella (voti) = campi (id_allievi, id_materie, voto_materia) un voto per ogni materia
tabella (attestati) = campi (id_corsi, id_allievi, num_attestato) un attestato per ogni corso
Non importa se le materie sono sempre 10 per ogni corso. Nel tempo potrebbero aumentare (o diminuire) e tenerle in una tabella dedicata ti servirà a gestire meglio il tutto.
C'è una cosa però, purtroppo inveitabile, anche nella migliore situazione possibile, per valutare in maniera corretta il funzionamento dell'intero database dovrai iniziare a caricarvi dei dati e da questi controllare eventuali anomalie, come ad esempio ridondanze o cose simili. Inoltre andrebbero prese in considerazione quante più situazioni estreme possibili, proprio per rendere migliore sia la struttura che, ovviamente, la gestione dei dati stessi.