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.