Para eliminar campos vazios da tabela do usuário, você pode fazer isso:
--------------------------------------------------
| id | user | level | login | password |
--------------------------------------------------
onde
user
contém todos os IDs de seus alunos e professores e level
que contém 1
para professores e 2
para estudantes. Nesse caso, você pode usar a coluna de nível para criar acesso em seu aplicativo.
Outro método é com uma mesa... separar alunos e professores por níveis, mas não é a melhor prática.