Если ни один из них не наследуется полностью от другого, то имеет смысл использовать 2 отдельные таблицы. Конечно, они могут иметь некоторые похожие атрибуты, но я понимаю, что вы никогда не будете использовать пользователя / разработчика взаимозаменяемо.
Если вы действительно беспокоитесь о избыточности, альтернативой может быть автоматическая регистрация любого разработчика в качестве пользователя, но с дополнительными атрибутами, которые будут храниться в соответствующей записи в таблице разработчиков.
Короче говоря, если сущности действительно разделены на 100%, и для разработчика имеет смысл зарегистрироваться один раз как разработчик, а другой раз как пользователь (без связи между учетными записями), тогда они, вероятно, принадлежат отдельные таблицы. Но если разработчика можно рассматривать как своего рода «суперпользователя» с расширенными атрибутами, то я бы сохранил все базовые записи в таблице «Пользователи» с добавлением атрибутов разработчика в своей собственной таблице (второй сценарий звучит более вероятно мне).