Задать вопрос
@koshagoool
Backend Developer

Несколько типов аккаунтов, как лучше организовать на уровне таблицы/миграций?

У меня есть приложение, куда будут регаться разного типа аккаунты.
Три основных типа есть — заказчик, исполнитель, админ.

Заказчик может создать у себя аккаунт для своего менеджера. Просто покажу структуру примерную:

1. Заказчик;
1. Менеджер;
2. Исполнитель
3. Администратор
1. Контент-менеджер
2. Аудитор

Главных типов аккаунтов три, некоторые из них могут создавать другие аккаунты.
Тут сразу ясно что нужны пермишены и роли, я буду использовать laravel spatie, доступы можно делать по ролям, пермишенам, проблема не в этом.

Как быть с тем, что поля у таблицы разные будут по-любому у разных типов аккаунтов (заказчик, исполнитель, аудитор)? Например, заказчик будет иметь поля вроде названия организации, категория деятельности, вид компании, и прочее. А исполнитель свои поля вроде диапазона цен (сколько стоит час работы например), и все то чего нет у таблицы заказчика. И так и с другими ролями. На уровне таблицы (или сущностей/логики) как мне оптимальнее всего это реализовать?

Не делать же разные таблицы вроде AdminUser, ManagerUser, и прочее.
  • Вопрос задан
  • 216 просмотров
Подписаться 1 Простой 1 комментарий
Решение пользователя dblearn94 К ответам на вопрос (3)
dblearn94
@dblearn94
Sanjar Tolibjonov использовать "табличный ввод" (не знаю как он правильно называется)
Суть такова, что у вас есть отдельная таблица где хранятся поля и значения, которые привязаны к профилю, и вам не нужно добавлять кучу полей в конкретно таблицу с профилями.

типа:
profile_setting:
profile_id | name | value

ну и соответственно строите связи, и все, проблема решена
Ответ написан