Pour éliminer les champs vides de la table utilisateur, vous pouvez procéder comme suit :
--------------------------------------------------
| id | user | level | login | password |
--------------------------------------------------
où user contient tous vos identifiants d'étudiants et d'enseignants et level qui contient 1 pour les enseignants et 2 pour les étudiants.
Dans ce cas, vous pouvez utiliser la colonne de niveau pour créer un accès dans votre application.
Une autre méthode consiste à utiliser une seule table... séparez les niveaux des élèves et des enseignants, mais ce n'est pas la meilleure pratique.