[ Foro de SQL (y MySQL) ]

Tabla dinamica en MySql

05-Nov-2015 06:20
Invitado (cl4551f13d)
1 Respuestas

Hola a todos.

Soy un novato en mysql y tengo la siguiente duda. He creado una tabla 'Alumno' algo así:

Tabla Alumno{
'id' as int,
'nombre' as varchar,
'curso' as int
}

La duda es la siguiente: Si el alumno se inscribe en dos o mas cursos, obviamente necesito agregar 2 o mas filas, tantas como cursos se pueda inscribir el alumno. Para mejorar el sistema pensé dejar la lista de curso en otra tabla algo así:

Tabla Cursos{
'id' as int,
'curso1' as int,
'curso2' as int,
.
.
.
}

y que la fila 'curso' en la tabla 'Alumno' apunte a dicha tabla. Pero la complejidad aumento. No sé, veo que lo que he hecho es muy ineficiente. Me pregunto si hay alguna forma de crear tablas dinámicas que puedan crecer de acuerdo a la necesidad o si hay forma de que una de las filas se le pueda asignar algo como un array o un array dinámico. De esta forma se podrían agregar tantos curso o elementos como se quiera sin tener que de cuando en cuando agregar mas filas y retoquetear el código.

Saludos.


13-Nov-2015 20:47
Nacho Cabanes (+83)

Es que lo que tienes es una relación "muchos a muchos". Lo ineficiente sería cambiar la estructura de la tabla para añadir más campos. Lo correcto es crear tres tablas:

- La tabla Alumnos (id, nombre, etc)

- La tabla Cursos (id, descripcion, etc)

- La tabla AlumnosEnCurso (idAlumno, idCurso)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)