@null_object
Здравствуйте! Сейчас пытаюсь спроектировать небольшую CRM. Есть следующие таблицы:
- contacts — клиентская база
- files — загруженные файлы
- employees — список сотрудников
- departments- список отделов, к которым привязаны сотрудники (по задумке тут должна быть древовидная структура подчинения)
- employee_positions — справочник существующих должностей
Поля и связи приведены на скриншоте:
Собственно, вопросы вот в чем:
- Не избыточно ли делить таблицу клиентов и таблицу сотрудников, при том, что у них довольно много схожих атрибутов?
- Стоит ли делать доступ к аватарке или справочнику должностей через связь «один-к-одному», при условии, что у пользователя только 1 аватарка, либо 1 должность?
- Будет ли работать такая реализация дерева, как на скрине? Если нет, то как правильно такое можно реализовать? (чем-то это напоминает битрикс)
Проект разрабатываю на Laravel 8 + PostgreSQL
Решения вопроса 1
@jazzus
Вместо contacts и employees таблицы users roles(там client, employee и тд)
связующие
user_role
user_department с pivot position_id
вместо avatar_id полиморфную связь images в документации прямой пример
если есть еще files то аналогично
связующие
user_role
user_department с pivot position_id
вместо avatar_id полиморфную связь images в документации прямой пример
если есть еще files то аналогично
5
комментариев
Ответы на вопрос 0