Puedes usar una segunda tabla con los ids de los alumnos y las calificaciones semanales o diarias:
Código C:
Ver original--alumnos
CREATE TABLE 'alumnos' ('id' int(11) NOT NULL auto_increment, 'nombre' varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
--calificaciones
CREATE TABLE 'calificaciones' ('id_alumno' int(11) NOT NULL, 'calificacion' float) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
En la tabla de calificaciones tambien estará el identificador de semestre (o lo que sea), el año (para guardar un historial), ... De alguna forma podras encontrar o definir el nº de semanas que hay en la evaluacion de forma que el nº de entradas por alumno tiene que coincidir con el nº de semanas (si las calificaciones son diarias entonces será lo mismo pero con el nº de dias).
Opcionalmente puedes añadir una automatizacion para rellenar a 0 las calificaciones de la semana para los alumnos que no obtuvieron nota esa semana (depende de la validacion final, esto incluso puedes omitirlo). P.ej. en windows puedes añadir un bat al scheduler para que ejecute un script de mantenimiento, hay mil formas de solventar lo de la automatizacion.
A partir de aqui solo tienes que aplicar las reglas de evaluacion: si la nota final es la media (independientemente de las asistencias) sumas las calificaciones por alumno y divides por el nº de semanas, o si se requiere un minimo de asistencia, o si solo computan las calificaciones pueriores a x, o lo que sea... Es una idea :)
Saludos
vosk