алгоритм распределения входящих заявок между менеджерами

Подскажите, каким образом обычно решается такая задача (php/sqlite):

В БД сайта записываются заявки на услугу от пользователей сайта. Эти заявки нужно распределить по менеджерам. Крайне желательно распределить равномерно.

Например: у меня 15 менеджеров (мен1, мен2, мен3, ..., мен15) в таблице "Менеджеры" моей БД.

Мне нужно каждую новую заявку, поступающую в таблицу "Заявки" БД, присвоить кому-то из менеджеров таким образом, чтобы у всех менеджеров было примерно одинаковое количество заявок за период.

Впервые решаю подобную задачу. И максимум, что мне приходит в голову, это:

рассчитать некий коэффициент распределения заявок на каждого менеджера из следующих данных:

1) количество заявок на каждого менеджера за период;

2) дата-время последней полученной менеджером заявки

Пункт 2 нужен, чтобы Вася, получивший 50 заявок 3 недели назад и все их выполнивший к сегодняшнему дню, не сидел без дела из-за того, что Маша пришла к нам работать всего 10 дней назад и у нее было только 7 заявок за это время.

Факт выполнения заявки нигде никак не учитывается (специфика работы такая - отдал заявку и забыл).

Как обычно это делается? Наверняка, задача типовая. Буду крайне благодарна за помощь. Заранее спасибо.


Ответы (1 шт):

Автор решения: Наталья

Спасибо за комментарии выше! Сузив для простоты временной интервал до недели, я примерно вот, что с вашей помощью придумала.

Видимо, следует ввести 3 коэффициента:

К1 = Количество заявок за текущий день на конкретного менеджера;

К3 = Количество заявок за последние 3 дня на конкретного менеджера;

К7 = Количество заявок за последнюю неделю на конкретного менеджера;

Тогда алгоритм распределения будет примерно таким:

  1. Выбираем менеджеров с минимальным К7;
  2. Если среди К7 есть одинаковые, то из них выбираем менеджеров с минимальным К3;
  3. Если среди К3 есть одинаковые, то выбираем, соответственно, менеджеров с минимальным К1.

По этому алгоритму я, наверное, и буду писать скрипт выбора. Если что-то неправильно, подскажите, как правильно.

→ Ссылка