2015-03-13 94 views
-1

我正在創建着陸頁。所有進入我的數據庫的線索。我想從我的數據庫獲取線索,並送他們出去2個電子郵件循環系統php和mysql

例如像這樣

鉛1 - >我的電子郵件
導致2 - >我的員工
導致3 - >我的電子郵件
鉛4 - >我的員工
導致5 - >我的電子郵件
導致6 - >我的員工

任何想法如何,我將開始?你如何建議我設置我的數據庫?

+1

我不知道你在說什麼。你試過的任何代碼?你有什麼嘗試?什麼是輸入,什麼是預期輸出? – 2015-03-13 16:48:30

+0

在某個地方(例如在數據庫中)存儲正在進行的鉛計數。然後你可以發送到'$ count%2',它會給你一個'0/1'值來選擇發送郵件的人。 – halfer 2015-03-13 17:18:07

回答

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', '[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語句相同的查詢中。

另一種方式來處理它 - 是整體分佈引線的數量始終選擇已收到線索量最少的人。根據你要做什麼,有很多方法可以做到這一點。

希望這會有所幫助!

編輯:另外,如果你有一個領導,你可以存儲你的用戶或員工ID,無論您存儲用戶,您的鉛 - 這將讓你看到哪些人收到導致。