订单平均分配

背景描述:

平台上有多家商户,商家有多名员工,商家和客户之间会产生很多订单,商家需要将订单平均分配给自己的员工去跟踪这些订单。

问题描述

一种情况是知道商家总订单数,商家所有员工,那么把所有订单直接平均一下,然后分配给所有员工就好了。
现在讨论的是另一种情况,每有一笔订单生成的时候,就根据平均原则分配给员工

解决方案

a. 如果知道每个人手里都有多少条单,那么只要把当前订单分配给手中单最少的人就可以了
统计分配状态
如果表里面的数据很少,我们可以很快从订单表里面统计分配状态,一个平台的数据量会有很多如果把很多的数据量拆小,比如按照门店分表,统计出一个商户的订单分配状态还是比较容易的,但对于一个平台可能有成千上万个商户来说,订单表就生成成千上万个,这个方案是不可行的。
另一种就是根据时间分表,将数据量变小,降低状态统计所需成本。
在具体的需求中可能并不需要对所有订单进行统计,我们可以按月分表,降低所统计的数据量
b.维护分配状态表
分配后要同时更新订单表和分配状态表,能想到的状态表的设计都很重,暂无可靠的方案
c.通过算法的方式实现
算法平局
在具体实现中通过redis的incr对订单总量进行维护,对每个商户的订单总量进行维护。如果需要对每个计数器加上过期时间参考:http://doc.redisfans.com/string/incr.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值