分配我有5个销售人员在公司website.Now当过查询来应该分布在以下比例PHP - 程序逻辑的变量
SalesA:SalesB:SalesC:SalesD:SalesE = 1:2 :1:1:1
我使用mysql作为数据库在php中创建了我的网站。
1.Is有可能的方式使用数据库
2.什么是需要的情况下,最好的数据库DB设计实现上述跟了出去。
在此先感谢
分配我有5个销售人员在公司website.Now当过查询来应该分布在以下比例PHP - 程序逻辑的变量
SalesA:SalesB:SalesC:SalesD:SalesE = 1:2 :1:1:1
我使用mysql作为数据库在php中创建了我的网站。
1.Is有可能的方式使用数据库
2.什么是需要的情况下,最好的数据库DB设计实现上述跟了出去。
在此先感谢
此逻辑必须在不在DB级别的PHP代码中实现。
获取六行(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
触发器在数据库级别上完成。
感谢您的回复。您能否请建议Db设计为上述 – user1614009
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);
感谢您的努力非常感谢您 – user1614009
有这么几个细节.. –
简单我有一个销售团队,有五个成员说SalesA,SalesB,SalesC,SalesD和SalesE。客户将查询放入我的网站。收到查询时,将按照以下比例分配SalesA:SalesB:SalesC:SalesD:SalesE = 1:2:1:1:1对于每个新的查询流程分配,SalesB应获得1次查询。那就是它 – user1614009