Round Robin System php и mysql

Я создаю целевые страницы. Все поступающие ссылки попадают в мою базу данных. Я хочу получить потенциальных клиентов из моей базы данных и отправить их на 2 электронных письма

например вот так

привести 1 -> мой адрес электронной почты
привести 2 -> мой сотрудник
привести 3 -> мой адрес электронной почты
привести 4 -> мой сотрудник
привести 5 -> мой адрес электронной почты
привести 6 -> мой сотрудник

Любая идея, как я мог бы начать? Как вы рекомендуете настроить мою базу данных?

-1

Решение

Вам просто нужно использовать рандомизатор (например, mt_rand), чтобы сгенерировать число от 0 (вы) до 1 (ваш работодатель). Если у вас больше сотрудников, просто увеличьте максимальное количество.

В вашей базе данных добавьте столбец с именем «assignee» или что-то еще, и при сохранении электронной почты добавьте также случайное число. Например:

// Number of employees, excluding you
$employees = 1;

$stmt = $dbh->prepare("INSERT INTO emails (email, assignee) VALUES (:email, :assignee)");
$stmt->bindParam(':email', '[email protected]');
$stmt->bindParam(':assignee', mt_rand(0, $employees));

Таблица будет выглядеть так:

email                | assignee
--------------------------------
[email protected]  |        0
--------------------------------
[email protected] |        1
--------------------------------
[email protected] |        1

Когда вы выбираете записи, те с присвоенным = 1 назначаются вашему сотруднику, а те с назначенным = 0 ваши.

Примечание: этот метод самый простой. Он не возвращает точную последовательность 0-1, но если у вас есть N электронных писем, в среднем вам будет назначено 50%, а вашему сотруднику — 50% (по «закону больших чисел»), поэтому вы ‘ Достигну вашей цели!

0

Другие решения

Это распределение, способ, которым вы, возможно, захотите обработать это в своей базе данных, с помощью столбца токенов, этот столбец маркеров может хранить 1 или 0, 1, если вы были последним человеком, получившим лидерство. Маркер передается по мере того, как человек получает лидерство.

Теперь неотъемлемой проблемой такого подхода является то, что в среде с высоким спросом чтение и запись, если они не происходят последовательно, могут привести к неправильному распределению ваших потенциальных клиентов.

Таким образом, вы можете захотеть сделать что-то вроде функции или метода, который обрабатывает это чтение и обновление токена последовательно или, если ваша система баз данных обрабатывает это, в рамках того же запроса с помощью оператора select update.

Другой способ справиться с этим — это подсчитать количество распределенных лидов и всегда выбирать человека, получившего наименьшее количество лидов. Есть много способов сделать это в зависимости от того, что вы собираетесь.

Надеюсь это поможет!

Изменить: Кроме того, если у вас есть лидерство, вы можете сохранить свой идентификатор пользователя или сотрудника, независимо от того, в чем вы сохранили пользователей, вместе со своим лидерством — что позволит вам увидеть, какое лицо получило какое лидерство.

0

По вопросам рекламы [email protected]