Тут по сути обычное наследование: есть абстрактный класс User, от него наследуются CompanyUser и FreelanceUser, у которых есть свои особенности (у CompanyUser - связь с компанией, у FreelanceUser - реквизиты).
Как такое можно сделать в Yii:
https://github.com/samdark/yii2-cookbook/blob/mast...
Но вообще способов реализации здесь куча: schema-less базы данных, разные таблицы, EAV и прочее.
Я бы сделал 3 таблицы: user, company, freelance_requesite. В CompanyUser сделал бы релейшен на company, в FreelanceUser - на реквизиты, и воспользовался бы механизмом из cookbook'a.