2012-09-24 37 views
3

分配我有5個銷售人員在公司website.Now當過查詢來應該分佈在以下比例PHP - 程序邏輯的變量

SalesA:SalesB:SalesC:SalesD:SalesE = 1:2 :1:1:1

我使用mysql作爲數據庫在php中創建了我的網站。

1.Is有可能的方式使用數據庫

2.什麼是需要的情況下,最好的數據庫DB設計實現上述跟了出去。

在此先感謝

+2

有這麼幾個細節.. –

+0

簡單我有一個銷售團隊,有五個成員說SalesA,SalesB,SalesC,SalesD和SalesE。客戶將查詢放入我的網站。收到查詢時,將按照以下比例分配SalesA:SalesB:SalesC:SalesD:SalesE = 1:2:1:1:1對於每個新的查詢流程分配,SalesB應獲得1次查詢。那就是它 – user1614009

回答

2

此邏輯必須在不在DB級別的PHP代碼中實現。

1

獲取六行(1 + 2 + 1 + 1 + 1)的modulo作爲要插入行的數據庫ID。然後根據這個分配銷售人員。

// Quick and dirty example 
switch($nextId % 6) { 
    case 0: 
     $salesperson = 'SalesA'; 
     break; 
    case 1: 
    case 2: 
     $salesperson = 'SalesB'; 
     break; 
    case 3: 
     $salesperson = 'SalesC'; 
     break; 
    case 4: 
     $salesperson = 'SalesD'; 
     break; 
    case 5: 
     $salesperson = 'SalesE'; 
     break; 
} 

這也可以通過使用AFTER INSERT觸發器在數據庫級別上完成。

+0

感謝您的回覆。您能否請建議Db設計爲上述 – user1614009

0

DB設計:

teams 

id title ratio 
1 TeamA 1 
2 TeamB 2 
3 TeamC 1 
4 TeamD 1 
5 TeamE 1 

可能有2種方式來創建表:使用關係數據或不

enquiries 

id team_id enquiry 
1 1  something 
2 2  something else 
3 2  something 
4 3  something else 

在這種情況下,當你插入數據,你應該對球隊比護理進入查詢表。

樣品:

SELECT e.id AS enquiry_id, e.enquiry, t.title 
FROM enquiries e 
JOIN teams t 
    ON t.id=e.team_id 

您也可以選擇非關係查詢表

enquiries 

id enquiry 
1 something 
2 something else 
3 something 

對於這個表,你將不得不關心球隊比當您選擇查詢

樣品:

$teams = array(); 

$query = "SELECT id, title, ratio FROM teams"; 
$sql = $mysqli->query($query); 
while($row = $sql->fetch_assoc()) { 
    $teams[] = $row; 
} 

$query = "SELECT * FROM enquiries"; 
$sql = $mysqli->query($query); 

$team = 0; 
$i = 0; 
while($row = $sql->fetch_assoc()) { 
    if($i >= $teams[$team]['ratio']) { 
     $team = $team == count($teams) ? 0 : ($team + 1); 

     $i = 0; 
    } 

    $teams[$team]['enquiries'][] = $row; 
    $i++; 
} 

print_r($teams); 
+0

感謝您的努力非常感謝您 – user1614009