У Вас несколько проблем, а Вы ищите 1 решение. При чем тут контролеры? Это какая-то отдельная проблема, которую Вы вообще не сформулировали.
Очевидно, что речь идет о хранении сущностей и тут вопрос не только: в одной ли таблице или в разных, тут еще есть вариант хранить различающиеся данные в json и тогда таблица одна (отлично подойдет для произвольных данных по которым не происходит выборка). А наверняка есть еще варианты, например отдельная модель на каждый профиль со своими методами и атрибутами.
Вопрос не решаемый, пока Вы не поймете как это будет использоваться. Так как расписав необходимые методы работы с данными, Вы сможете понять какой из методов оптимален под данный проект.
Любое хорошее решение - это логический вывод при рассмотрении всех исходных данных. А Вы не предоставили их и видимо сами для себя еще не сформулировали.