алгоритм распределения входящих заявок между менеджерами
Подскажите, каким образом обычно решается такая задача (php/sqlite):
В БД сайта записываются заявки на услугу от пользователей сайта. Эти заявки нужно распределить по менеджерам. Крайне желательно распределить равномерно.
Например: у меня 15 менеджеров (мен1, мен2, мен3, ..., мен15) в таблице "Менеджеры" моей БД.
Мне нужно каждую новую заявку, поступающую в таблицу "Заявки" БД, присвоить кому-то из менеджеров таким образом, чтобы у всех менеджеров было примерно одинаковое количество заявок за период.
Впервые решаю подобную задачу. И максимум, что мне приходит в голову, это:
рассчитать некий коэффициент распределения заявок на каждого менеджера из следующих данных:
1) количество заявок на каждого менеджера за период;
2) дата-время последней полученной менеджером заявки
Пункт 2 нужен, чтобы Вася, получивший 50 заявок 3 недели назад и все их выполнивший к сегодняшнему дню, не сидел без дела из-за того, что Маша пришла к нам работать всего 10 дней назад и у нее было только 7 заявок за это время.
Факт выполнения заявки нигде никак не учитывается (специфика работы такая - отдал заявку и забыл).
Как обычно это делается? Наверняка, задача типовая. Буду крайне благодарна за помощь. Заранее спасибо.
Ответы (1 шт):
Спасибо за комментарии выше! Сузив для простоты временной интервал до недели, я примерно вот, что с вашей помощью придумала.
Видимо, следует ввести 3 коэффициента:
К1 = Количество заявок за текущий день на конкретного менеджера;
К3 = Количество заявок за последние 3 дня на конкретного менеджера;
К7 = Количество заявок за последнюю неделю на конкретного менеджера;
Тогда алгоритм распределения будет примерно таким:
- Выбираем менеджеров с минимальным К7;
- Если среди К7 есть одинаковые, то из них выбираем менеджеров с минимальным К3;
- Если среди К3 есть одинаковые, то выбираем, соответственно, менеджеров с минимальным К1.
По этому алгоритму я, наверное, и буду писать скрипт выбора. Если что-то неправильно, подскажите, как правильно.