Uhm mi suona tanto da relazione.

Se ho capito bene hai una cosa come :

tabella studenti
id
nome
dati vari

tabella studi
id
dati

Fin qua ok, poi iniziano i dubbi.
Gli studi di uno studente possono essere anche quelli di altri studenti?
Io credo di si visto che scuola media / superiore ingegneria informatica etc possono essere assegnati a piu' utenti.
Se e' cosi la relazione tra le tabelle diventa una relazione molti a molti e richiede l'apposita tabella di relazione.
Quindi io aggiungerei la tabella

studenti_studi
id_studente
id_studio

primary key(id_studente , id_studio)// per evitare le replicazioni

Quindi ti basta fare una query con sottoselect o join per recuperare tutti i dati degli studi di uno studente.
Inoltre puoi recuperare per esempio tutti gli studenti con scuola superiore, media, un certo tipo di ingegneria etc.

Nella select box quindi puoi inserire tutti gli studi dell'utente senza dover impazzire.
Nel caso un certo corso di studi non esiste si puo' facilmente inserire nella tabella generica, per esempio master di questo o di quello etc.
Magari puoi esendere la tabella e categorizzare ma questo e' gia' oltre.


Secondo me una sol di questo genere ti consente di gestire le cose al meglio.
Per esempio:
Voglio tutti gli studenti con master in telecomunicazioni

select
*
from
studenti_studi
where
id = $id

Ovviamente questa ti restituisce solo le chiavi. ma la puoi esentendere cosi'

select
stud.*
from
studenti_studi ss,

left join
studenti stud
on
ss.id_studente = ss.id

where
ss.id = $id

e cosi' ti carichi la tabella degli studenti che cercavi.