Пример
У меня есть Person, SpecialPerson и User. Person и SpecialPerson - это просто люди - у них нет имени пользователя или пароля на сайте, но они хранятся в базе данных для ведения записей. Пользователь имеет все те же данные, что и Person и потенциально SpecialPerson, а также имя пользователя и пароль, поскольку они зарегистрированы на сайте.
Как вы могли бы решить эту проблему? У вас есть таблица Person, которая хранит все данные, общие для человека, и использует ключ для поиска своих данных в SpecialPerson (если они являются особым человеком) и Пользователем (если они являются пользователем) и наоборот