Ändra inte din DB-design vid körning, utan designa den på ett sätt så att du kommer att ändra data inte strukturen.
Du kan ha två bord. En som heter Student
med kolumner rollno
och name
, kanske PK på rollno
om det är unikt.
Har sedan en annan tabell som heter Thing
(vilket lämpligt namn som helst, men jag vet inte vad dina uppgifter handlar om) med tre kolumner when
(datumtid), value
(valfritt lämpligt namn) (CHAR(1)) och student
(samma typ som rollno
).
Definiera PK över både when
och value
för att säkerställa att varje elev bara har ett värde per datum. Definiera en FK från Thing.student
till Student.rollno
. Nu tar din DB hand om att hålla dina data (för det mesta) konsekventa.
Definiera index beroende på dina behov av markeringar, infogar och uppdateringar över de olika kolumnerna.
Gå sedan med båda tabellerna för att fråga för att få önskat resultat, t.ex.
select s.name, t.value
from Student s
left join Thing t on t.student = s.rollno
where t.when == 'whenever'
(Jag är inte säker på mysql-dialekten, så det kanske behövs några fler citat. Redigera gärna.)