首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

数据库一张表,不同的人审核不同行的数据,请问老哥们知道怎么实现吗,给个思路

  •  
  •   capljf · 123 天前 · 1240 次点击
    这是一个创建于 123 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题: 同一张报表,表中的数据需要大量人工去审核正确与否,有一个问题是给系统中不同的审核员展示不同的数据。 例:有一张淘宝订单表,有 5 个审核。这个 5 个人同时审核所有订单,如果给这 5 个审核展示不同的订单。或者 5 个人里只有 3 个人登录系统去审核的时候,给他们展示不同的订单。

    大家有啥思路吗?

    17 回复  |  直到 2019-07-13 08:13:23 +08:00
        1
    wawzw123   123 天前   ♥ 1
    参考分单派单系统设计
        2
    sss15   123 天前
    如果你能知道当前在线审核人数的话,可以直接求余,每个人就分开了
        3
    kyuuseiryuu   123 天前 via iPhone   ♥ 1
    创建一个队列,把单子 id 丢进队列里面去消费。
        4
    TypeErrorNone   123 天前
    取数据得时候加锁,改状态
        5
    JQZhang   123 天前   ♥ 1
    没看明白需求,你举的那个例子是 5 个审核是 5 个人每个人审核一行数据里不同类型的数据,比如一个审数量,另一个审价格......,还是 5 个人审不同行的数据就行
        6
    lihongjie0209   123 天前
    这个需求还是不明确

    如果现在系统有三个人在审核, 所有的单都派发给这三个人, 如果第四个人进入系统, 第四个人是没有单呢还是要从其他审核员的订单窃取呢?
        7
    lhx2008   123 天前 via Android
    把以前没有审核的单搞到消息队列里面,新单也是存了数据库后发到消息队列,审核客户端这边一次拉 n 个 id,然后去数据库读这条信息,审核完点下一批在去消息队列拉。

    至于用什么消息队列,最简单的就是 redis 的 list
        8
    yaerda   123 天前
    跟 3 楼所说一样,创建一个队列,每人每次取 1 或 n 个,长时间未消费回退到队列中,再支持手动指定取出就可以了
        9
    annielong   123 天前
    无序数据队列轮取,有序的就取余
        10
    capljf   123 天前   ♥ 1
    @kyuuseiryuu 感谢,你的回答给了我一个思路。用两个队列,先把所有未审核订单 id 取出来放第一个队列(未审核),然后每次每个人来请求的时候取出部分 id 放 第二个队列(正在审核),并把这些 id 从第一个队列删除。如果审核完成就更新表里数据状态,如果没有审核完成或者取出后超时未审核就把这些 id 从第二个队列删除放回第一个队列。
        11
    capljf   123 天前
    @TypeErrorNone 我的第一思路也是这样,但是加锁如何解锁呢,如果一个审核取了 1-10 条数据来审核,就对这些数据加上了排它锁,但是审核突然去做别的事儿了或者把浏览器关了,那么这些数据就一直锁着。个人对锁不是很了解,请问能详细解释一下怎么使用吗?
        12
    capljf   123 天前
    @lihongjie0209 抱歉,是我没有考虑到这些情况。你提的也很对,我想需求应该是如果第四个人进入,如果系统还有未分发的单就给第四个人派单
        13
    capljf   123 天前
    @wawzw123 好的好的,之前没有做过类似需求。刚刚搜索的时候都想不出什么好的关键词,派单这个太对了,应该是完美契合
        14
    capljf   123 天前
    @lhx2008 感谢,和 3 楼的建议思路是一样的,这个思路很棒
        15
    NotNil1   123 天前
    乐观锁,查询之后加标记
        16
    capljf   123 天前
    @ljtletters 你好,请问如何加标记呢。我只是查询数据,一次查询,一次更新,如果在保证两次请求用的一个事务呢
        17
    wenzhoou   122 天前 via Android
    用户 a 点审核开始,就把数据库改为 状态:审核中,担当者 a。这个任务就给 a 了。一直到 a 用户点审核结束,或者取消。你得要画一个状态迁移图。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1099 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 23:01 · PVG 07:01 · LAX 15:01 · JFK 18:01
    ♥ Do have faith in what you're doing.