Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/06/2005, 20:04
leonardop
 
Fecha de Ingreso: julio-2003
Mensajes: 165
Antigüedad: 20 años, 10 meses
Puntos: 1
En lo que concierne a la estructura de la base de datos, por supuesto que hay muchas formas posibles de diseñar las tablas. Cuál diseño es el más conveniente depende de cuál sea el criterio de selección más importante para tí. Es decir, puedes resultar con diseños diferentes dependiendo de aquello que encuentras más significativo en tu aplicación: puede ser eficiencia de almacenamiento, eficiencia de procesamiento en las consultas, eficiencia en tiempo de desarrollo de la herramienta de consulta, etc.

Si ya cuentas con un diseño, pero lo encuentras engorroso, sería bueno que detallaras un poco más cuál es el diseño que usas en este momento, y en qué sentido lo encuentras engorroso y en qué aspectos esperas poder mejorar tu situación.

Por el momento, y según lo que puedo interpretar de tu enunciado, se me ocurre que un diseño tradicional y flexible podría ser algo de este estilo:

Contar con, al menos, tres tablas: estudiantes, asignaturas y notas, cada una de ellas con los siguientes campos:

Tabla estudiantes
  • id_estudiante (tipo numérico sin signo, llave principal)
  • nombre
  • curso (podría ser una llave foránea a otra tabla de cursos, p.ej. pero por simplicidad, podría ser un simple número o cadena de texto)
  • ... (demás compas importantes para un estudiante)

Tabla asignaturas
  • id_asignatura (tipo numérico sin signo, llave principal)
  • nombre_asignatura
  • curso (igualmente, podría ser una llave foránea si se requiere hacer validaciones estrictas con el curso al que pertenecen las asignaturas, o simples números/cadenas)
  • ... (demás compas importantes para una asignatura)

Tabla notas
  • id_nota (tipo numérico sin signo, llave principal)
  • estudiante (llave foránea a id_estudiante)
  • asignatura (llave foránea a id_asignatura)
  • nota

Es solo una sugerencia simple, pero como te digo, quizás una solución aun más adecuada en tu caso dependería de cuáles son tus criterios de selección más importantes :).