首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将待处理的订单分成两个小组

将待处理的订单分成两个小组
EN

Stack Overflow用户
提问于 2011-05-22 11:10:15
回答 1查看 142关注 0票数 1

当客户在网站上提交订单时。工作人员可以在管理后端查看挂起的订单(从mysql中提取数据),但我希望将挂起的订单分成两个团队。

示例

我们已收到21份待处理的订单。

共有员工11人。

团队1:5名员工

团队2:6名员工

1组可以查看11份订单,2组可以查看10份订单。

有时我可能每小时收到100个订单- PHP应该决定将一半的待定订单分成两个团队(动态).

team_id应该在order表上设置吗?例:tbl_orders.team_id = 2用户何时提交订单?但是,如果没有足够的员工登录到第一组或第二组呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-22 11:19:08

你有两种方法。

第一(动态)

首先,你要数一下所有的吊坠:

代码语言:javascript
复制
SELECT COUNT(*) FROM pending;

然后你向第一队展示上半场:

代码语言:javascript
复制
$half = round($count/2);
SELECT * FROM pending ORDER BY id DESC LIMIT $half;

第二组得到:

代码语言:javascript
复制
SELECT * FROM pending ORDER BY id DESC LIMIT $half,$half;

如果你有更多的团队,你只需要除以2中的团队总数。

第二种选择(固定)

插入挂起时,将它们与团队关联。但是你必须把另一个字段添加到你的桌子上。

假设您有一个字段team TINYINT(1) UNSIGNED

当放置下一个挂起时,您将检查插入的最后一个团队:

代码语言:javascript
复制
 SELECT team FROM pending ORDER BY id DESC LIMIT 1;

假设您有一个用于存储团队数量的配置:

代码语言:javascript
复制
 $totalTeamsAvailable = 2;

使用您所做的查询所选择的值:

代码语言:javascript
复制
 $nextTeam = (++$teamFromSql % $TotalTeamsAvailable) + 1;

现在您有了可以与此挂起的团队相关联的团队。你当然可以把它和

代码语言:javascript
复制
 INSERT INTO pending (data,team) VALUES (,$nextTeam);

第二种解决办法可能会受到种族状况的影响。(两个待安置在几乎相同的位置可能与同一支球队有关,但我相信这不会有任何伤害)

增编

要计算最近做了一些事情的团队,您有两种方法:

  • 您需要一个表teams,在这里存储员工的最后一个登录数据。
  • 存储每个团队所做的每一个操作(例如,团队1批准并发送订单挂起#2),并使用一个数据(可能已经有此表)存储

在这一点上,很容易选择最近活动的团队数量。

使用表组,只需执行以下操作:

代码语言:javascript
复制
$teamWithRecentlyActivity = SELECT COUNT(*) FROM teams WHERE lastLogin > (time() - (60*60*24));   
//> This select all teams within 1 day from last login

有了这个号码,您可以使用以下方法来平分所需的所有挂起的数:

代码语言:javascript
复制
$pendingPerTeam = round($totalPendings / $teamWithRecentlyActivity);

并在我的第一个解决方案中使用此偏移量

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6087517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档