Я создаю целевые страницы. Все поступающие ссылки попадают в мою базу данных. Я хочу получить потенциальных клиентов из моей базы данных и отправить их на 2 электронных письма
например вот так
привести 1 -> мой адрес электронной почты
привести 2 -> мой сотрудник
привести 3 -> мой адрес электронной почты
привести 4 -> мой сотрудник
привести 5 -> мой адрес электронной почты
привести 6 -> мой сотрудник
Любая идея, как я мог бы начать? Как вы рекомендуете настроить мою базу данных?
Вам просто нужно использовать рандомизатор (например, 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% (по «закону больших чисел»), поэтому вы ‘ Достигну вашей цели!
Это распределение, способ, которым вы, возможно, захотите обработать это в своей базе данных, с помощью столбца токенов, этот столбец маркеров может хранить 1 или 0, 1, если вы были последним человеком, получившим лидерство. Маркер передается по мере того, как человек получает лидерство.
Теперь неотъемлемой проблемой такого подхода является то, что в среде с высоким спросом чтение и запись, если они не происходят последовательно, могут привести к неправильному распределению ваших потенциальных клиентов.
Таким образом, вы можете захотеть сделать что-то вроде функции или метода, который обрабатывает это чтение и обновление токена последовательно или, если ваша система баз данных обрабатывает это, в рамках того же запроса с помощью оператора select update.
Другой способ справиться с этим — это подсчитать количество распределенных лидов и всегда выбирать человека, получившего наименьшее количество лидов. Есть много способов сделать это в зависимости от того, что вы собираетесь.
Надеюсь это поможет!
Изменить: Кроме того, если у вас есть лидерство, вы можете сохранить свой идентификатор пользователя или сотрудника, независимо от того, в чем вы сохранили пользователей, вместе со своим лидерством — что позволит вам увидеть, какое лицо получило какое лидерство.