Ne modifiez pas la conception de votre base de données au moment de l'exécution, mais concevez-la de manière à modifier les données et non la structure.
Vous pourriez avoir deux tables. Un appelé Student
avec les colonnes rollno
et name
, peut-être PK sur rollno
s'il est unique.
Ensuite, ayez une autre table appelée Thing
(n'importe quel nom approprié, mais je ne sais pas à quoi correspondent vos données) avec trois colonnes when
(dateheure), value
(tout nom approprié) (CHAR(1)) et student
(même type que rollno
).
Définissez PK sur les deux when
et value
pour s'assurer que chaque étudiant n'a qu'une seule valeur par date. Définissez un FK à partir de Thing.student
à Student.rollno
. Maintenant, votre base de données s'occupe de garder vos données (principalement) cohérentes.
Définissez des index en fonction de vos besoins de sélections, d'insertions et de mises à jour sur les différentes colonnes.
Ensuite, pour interroger, joignez les deux tables pour obtenir le résultat souhaité, par exemple
select s.name, t.value
from Student s
left join Thing t on t.student = s.rollno
where t.when == 'whenever'
(Je ne suis pas sûr du dialecte mysql, alors peut-être que d'autres guillemets sont nécessaires. N'hésitez pas à modifier.)