Как сделать выборку по расписанию занятости?
База Mysql
Есть база занятости менеджера(время начала работы и примерная продолжительность в часах):
manager_id | date_time_start | duration
Вида:
123 | 2020-11-17 12:00:00 | 4
123 | 2020-11-17 19:00:00 | 2
Есть база задач(время начала задачи и примерная продолжительность в часах):
task_id | date_time_start | duration
Вида:
1 | 2020-11-17 11:00:00 | 2
2 | 2020-11-17 17:00:00 | 1
Подскажите как переделать базу и составить запрос, чтобы вывести менеджеру только те задачи, которые удовлетворяют следующему условию:
- интервал времени работы новой задачи не должен попадать в интервал текущих задач менеджера
- время начала новой задачи должно быть не раньше чем через 20 минут после окончания предыдущей задачи.
- время окончания новой задачи должно быть быть не меньше чем за 20 минут до начала текущих задач менеджера.
Также надо выводить в обратную сторону, чтобы по задаче вывести всех доступных менеджеров для данной задачи по критериям выше.
Может есть готовые алгоритмы для такой задачи? Базу пока можно переделать, чтобы это работало быстро. Заранее спасибо.