Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/08/2013, 08:19
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Quiero proponer un caso

Hola Replica:

En realidad en esto del modelado de datos no hay una "mejor" manera de hacer las cosas, aunque sí hay que tomar en cuenta algunas consideraciones:

Por ejemplo, en el primer caso, estás considerando 30 alumnos como máximo, pero qué pasa si fuera el caso de que no completaras el grupo??? imagina que alguna clases será tomada sólo por 20 alumnos... ¿cómo vas a manejar los campos restantes? si tu idea es poner los id's a tu tabla alumnos, entonces estás forzando a que todos los grupos sean de 30 alumnos, no menos... y si piensas en la posibilidad de poner campos NULL, entonces no podrías definir las relaciones de FK, y una tabla sin relaciones de integridad, se convierte en simplemente en un montón de basura.

El segundo modelo es un poco más flexible, aunque no veo la necesidad de el campo para saber si está escrito o no... es decir, por un lado tienes la tabla de alumnos, por otro lado la tabla de maestros y finalmente la tabla de horarios-maestro... ahora bien, la cuarta tabla lo único que debería de incluir es el id del alumno y el id de de la tabla horarios-maestros... si un alumno NO VA A TOMAR CIERTA CLASE, entonces simplemente NO APARECE EN ESTA TABLA. es decir, en la cuarta tabla sólo aparecerían las clases que toman cada alumno... para evitar que un alumno esté "repetido" en una misma clase, simplemente defines una llave compuesta... (es la misma validación de la que hablabas en el primer caso)

Hay mucha tela de donde cortar, pero en definitiva, creo que el primer modelo más que facilitarte las cosas, terminaría por complicarlas.

Saludos
Leo.