Есть ли у вас что-нибудь еще "type" в таблице UserTypes? Сколько там записей? Если их всего несколько, и они не содержат никаких дополнительных данных, то я просто денормализую эту таблицу и вообще не буду иметь отдельного столяра.
То есть:
Users:
ID | First Name | Last Name
-----------+------------------+--------------------
123 | John | Smith
456 | Jane | Doe
UserTypes:
UserID | Type
-----------+----------------
123 | student
123 | specialist
456 | teacher
Столбец «Тип» не обязательно должен быть строкой, это может быть целое число, которое сопоставляется с перечислением в вашем коде или чем угодно.
ИМО, не так уж много смысла денормализировать вещи до такой степени, что у вас все время объединяются 500 столов ...