duda existancial sql (mysql)

Estoy haciendo una aplicacion web con j2ee y pense en hacer una que gestione la nota de los alumnos y eso. Mas o menos tengo todo perfilado, usar struts gestionando actions, el entorno (eclipse), el tema (obviamente), pero llegados a la hora de perfilar la capa de persistencia (como guardar los datos a una bbdd) me doy cuenta que no tengo ni **** idea de como representar la siguiente abstraccion:

Por un lado tengo alumnos, con nombre, telefono, y lista de notas, y por el otro lado tengo un monton de asignaturas, con nombre, creditos, y oh! atencion! lista de alumnos, las dos entidades estan como "emparejadas" y ya no veo que hacer, solo se hacer tablas, insertar elementos, y esas cosas, vamos, que estoy atascado xD
Haces una tabla matriculas, que contenga
Id-Alumno Id Asignatura
(tomas el Dni o lo que uses de calve primaria en cada una
de las otras tablas)

Y metes una entrada por cada Asignatura y alumno.
No sera lo más elegante pero es lo mas facil de hacer

La lista de alumnos de cada asignatura seria hacer una consulta,
que tenga Id-asignatura igual.
Y si quieres ver las asignaturas del alumno pues haces una
consulta que tengan el mismo DNI
Muuuchas gracias no se como no se me ocurrio hacer eso! la verdad es que es mi primer programa que uso mysql y no toy muy ducho xD
Una sola puntualización al diseño de Harl: en la tabla matrícula que incluye alumno y asignatura, yo incluiría también la nota del alumno, ya que parece que ^Slash^ quiere que cada alumno tenga una lista de notas.
3 respuestas