Pues mira, en ese caso, no es con la db, porque va mas por el lado de la programación. Una fk puede estar vacia por lo cual, no corresponde a la Db, lo tendrías que controlor por programación.
Pienso en esto, para poder matricularse, primero debe pasar la relación de las materias que desea ver y ahí si matricularse, con esto evitas que se matriculen y que no vean materias.
Espero que sea lo que necesitas.
Saludos.