Laravel(php) + разное описание для пользователей с ролью
Может кто-то подсказать как реализовать разные поля для разных ролей. К примеру у пользователей в профиле есть номер телефона, а у администратора отдел и организация. Что-то на подобии? Или ссылочку, где можно почиатть 
Ответы (1 шт):
2 крайние таблицы - это вообще какой-то прикол... Сущности не должны быть таблицами.
У Вас есть таблица users, таблица roles.
Добавляете таблицу user_has_roles (назначение ролей), если ролей может быть много на одного пользователя. Если нет, то просто поле в users — "role_id".
В users добавляете поля ("department", "organization", "phone"), которые содержат информацию для конкретного пользователя. Можно нормализовать таблицу: создать таблицы user_fields ("id", "name", "title"), user_has_fields ("user_id", "user_field_id", "value") и в них писать информацию в зависимости от заполнения в профиле. Так не будет лишних пустот в таблице с пользователями. Но работать становится сложнее.
Дальше уже в своей бизнес-логике обрабатываете, что может заполнять админ, а что пользователь, и, соответственно, в шаблоне тоже выводите в зависимости от роли пользователя телефон или отдел с организацией. Именно кодом это делается. База данных только хранит данные.
Можете в принципе не городить велосипеды с системой прав и воспользоваться пакетом Spatie Laravel Permissions
UPD. В целом, Вы можете завести 2 таблицы user_contacts ("user_id", "phone"), user_organizations ("user_id", "department", "organization"). НО они в любом случае не зависят от ролей в БД. Должна браться связь с моделью в зависимости от существования у пользователя роли.