我在公司网站上有 5 个销售人员。现在,当有查询时,它应该按以下比例分配
销售A : 销售B : 销售C : 销售D : 销售E = 1 : 2 : 1 : 1 : 1
我用 mysql 作为数据库在 php 中创建了我的网站。
1.是否有可能在不使用数据库的情况下实现上述目标
2.如果需要数据库,最好的数据库设计是什么。
提前致谢
我在公司网站上有 5 个销售人员。现在,当有查询时,它应该按以下比例分配
销售A : 销售B : 销售C : 销售D : 销售E = 1 : 2 : 1 : 1 : 1
我用 mysql 作为数据库在 php 中创建了我的网站。
1.是否有可能在不使用数据库的情况下实现上述目标
2.如果需要数据库,最好的数据库设计是什么。
提前致谢
这个逻辑必须在 PHP 代码中实现,而不是在数据库级别。
获取要插入的行的数据库 ID 的六 (1+2+1+1+1)模数。然后根据此分配销售人员。
// 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
触发器在数据库级别完成。
数据库设计:
teams
id title ratio
1 TeamA 1
2 TeamB 2
3 TeamC 1
4 TeamD 1
5 TeamE 1
可能有两种创建表的方法:使用或不使用关系数据
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);