Делаю CRM-систему, необходимо добавить задачи, чтобы их можно было связывать со сделкой, клиентом, заявкой и т.д. Как правильно это сделать?
В БД на данный момент есть таблица clients, sales, leads.
Из понятного: таблица tasks содержит в себе поля id, title, text, add_date, task_date. Как сделать связь между клиентом/продажей/лидом и задачей?
Думал сделать промежуточную таблицу tasks_has_entities (id, task_id, entity, entity_id), где entity - это название сущности (clients, sales, leads), а entity_id - это id строки в таблице entity.
Но вопрос - как правильно построить запрос? Уже пробовал просто написать, но не понимаю. Это же нужно делать циклом, правильно понимаю? Чтобы вытаскивать данные по каждой сущности
Самый простой вариант выбрать связанные данные по задаче:
select * from tasks
left join task_entity on task_id = tasks.id
left join clients on entity = 'client' and entity_id = clients.id
left join sales on entity = 'sales' and entity_id = sales.id
left join leads on entity = 'leads' and entity_id = leads.id
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости