循环系统php和mysql

时间:2015-03-13 16:44:08

标签: php mysql round-robin

我正在创建着陆页。所有进入的潜在客户都会进入我的数据库。我想从我的数据库中检索潜在客户并将其发送到2封电子邮件

例如像这样

引导1 - >我的电子邮件
引线2 - >我的员工 第3号 - >我的电子邮件
引线4 - >我的员工 导联5 - >我的电子邮件
导联6 - >我的员工

任何想法我会如何开始?您如何建议我设置我的数据库?

2 个答案:

答案 0 :(得分:0)

您只需使用随机数发生器(例如mt_rand)来生成0(您)和1(您的雇主)之间的数字。如果您有更多员工,那么只需增加最大数量。

在您的数据库中,添加名为"受理人"的列。或其他任何东西,当你存储电子邮件时,也添加随机数。例如:

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

$stmt = $dbh->prepare("INSERT INTO emails (email, assignee) VALUES (:email, :assignee)");
$stmt->bindParam(':email', 'someone@example.com');
$stmt->bindParam(':assignee', mt_rand(0, $employees));

该表格如下:

email                | assignee
--------------------------------
someone@example.com  |        0
--------------------------------
someone2@example.com |        1
--------------------------------
someone3@example.com |        1

当您选择记录时,受让人= 1的记录将分配给您的员工,受让人= 0的记录将被分配给您。

注意:此方法是最简单的方法。它不会返回0-1的确切序列,但如果您有N封电子邮件,平均50%将分配给您,50%将分配给您的员工(对于"大数定律&# 34;),所以你已经实现了目标!

答案 1 :(得分:0)

这是分发,您可能希望在数据库中处理此问题的方式是使用标记列,如果您是最后一个接收潜在客户的人,此标记列可以存储1或0,1。当该人收到该线索时,该令牌将被传递。

现在这种方法的固有问题是,在高需求环境中,读取和写入如果不连续发生,可能会导致错误分发您的潜在客户。

因此,您可能希望执行类似于连续处理此读取和令牌更新的函数或方法,或者如果数据库系统通过更新选择语句在同一查询中处理它。

另一种处理方式 - 总计分配的潜在客户数量,并始终选择收到最少潜在客户的人员。根据你的目标,有很多方法可以做到。

希望这有帮助!

编辑:此外,如果您有一个潜在客户,您可以将您的用户或员工ID(无论您存储在哪些用户中)与您的潜在客户存储在一起 - 这样您就可以看到哪个人收到了哪个潜在客户。