Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2013, 01:52
Avatar de replica
replica
 
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 19 años, 6 meses
Puntos: 2
Quiero proponer un caso

A ver qué solución es la óptima (o si me dan alguna mejor).

Imaginemos un centro de estudios (sea una universidad, un instituto o una academia privada). Un colegio no me vale, ya que las clases no son tan flexibles, aunque el caso se podría adoptar perfectamente para una escuela primaria.

Tenemos, por un lado, la tabla de alumnos. Con la ID del alumno, nombre, apellidos...
Por otro lado, la de profesores. Id del profesor, nombre, apellidos...

Vamos a confeccionar la relación entre ellos, y le llamaremos HORARIOS. Aquí me vienen 2 soluciones:

La primera: en esta tabla, tendremos la fecha en la que se imparte la clase y su horario, la id del profesor, la id de cada uno de los 30 alumnos como máximo, y si asisten o no. Al final, como mucho, unos 60 y pico campos. Lo único que tengo que comprobar, al hacer la programación, es que un alumno no se repita dentro de la misma fila. La programación de esto creo que resulta sencilla. El problema que veo es que el diseño de la tabla tiene 30 claves foráneas referenciando a la misma tabla, una por cada alumno. Esto me alarma, ya que el diseño se sale de lo estándar.

La segunda solución, más estandar, es dividir la tabla horarios en dos:
Una tabla en la que almacenaría el profesor, la fecha y la hora, y le asigno un id.
Y otra tabla en la que tendría el id de la tabla anterior, un identificador de alumno y un campo para saber si asiste o no.

El segundo caso es mucho más estándar, pero es un poco más difícil de programar (a mi parecer).

Me gustaría saber qué opción utilizaríais vosotros, cuál obtendría mayor rendimiento y bueno, simplemente debatir un poquito sobre el caso.

Un saludo.