Ma per niente: intanto non ha senso avere due tabelle separate "login" e "utenti" ma deve essere un'unica tabella; per il resto mi sembra che replichi sulle tabelle delle singole tipologie di utente anche i dati già presenti nella tabella base, quando basta un riferimento (diciamo "id_utenti") alla tabella base.
Devi poi scremare ancora per capire se effettivamente un preside ha molte cose diverse da un professore o se si tratta di uno o due campi diversi, nel qual caso converrebbe tenerli assieme lasciando vuoti i campi non valorizzabili per gli insegnanti in quanto specifici del preside.