Здравствуйте! Сейчас пытаюсь спроектировать небольшую CRM. Есть следующие таблицы:
- contacts - клиентская база
- files - загруженные файлы
- employees - список сотрудников
- departments- список отделов, к которым привязаны сотрудники (по задумке тут должна быть древовидная структура подчинения)
- employee_positions - справочник существующих должностей
Поля и связи приведены на скриншоте:
Собственно, вопросы вот в чем:
- Не избыточно ли делить таблицу клиентов и таблицу сотрудников, при том, что у них довольно много схожих атрибутов?
- Стоит ли делать доступ к аватарке или справочнику должностей через связь "один-к-одному", при условии, что у пользователя только 1 аватарка, либо 1 должность?
- Будет ли работать такая реализация дерева, как на скрине? Если нет, то как правильно такое можно реализовать? (чем-то это напоминает битрикс)
Проект разрабатываю на Laravel 8 + PostgreSQL