数据库一张表,不同的人审核不同行的数据,请问老哥们知道怎么实现吗,给个思路 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
capljf
V2EX    程序员

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

  •  
  •   capljf 2019-07-12 16:47:45 +08:00 2694 次点击
    这是一个创建于 2360 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    大家有啥思路吗?

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

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

    至于用什么消息队列,最简单的就是 redis 的 list
    yaerda
        8
    yaerda  
       2019-07-12 17:11:46 +08:00
    跟 3 楼所说一样,创建一个队列,每人每次取 1 或 n 个,长时间未消费回退到队列中,再支持手动指定取出就可以了
    annielong
        9
    annielong  
       2019-07-12 17:28:22 +08:00
    无序数据队列轮取,有序的就取余
    capljf
        10
    capljf  
    OP
       2019-07-12 17:35:54 +08:00   1
    @kyuuseiryuu 感谢,你的回答给了我一个思路。用两个队列,先把所有未审核订单 id 取出来放第一个队列(未审核),然后每次每个人来请求的时候取出部分 id 放 第二个队列(正在审核),并把这些 id 从第一个队列删除。如果审核完成就更新表里数据状态,如果没有审核完成或者取出后超时未审核就把这些 id 从第二个队列删除放回第一个队列。
    capljf
        11
    capljf  
    OP
       2019-07-12 17:38:28 +08:00
    @TypeErrorNone 我的第一思路也是这样,但是加锁如何解锁呢,如果一个审核取了 1-10 条数据来审核,就对这些数据加上了排它锁,但是审核突然去做别的事儿了或者把浏览器关了,那么这些数据就一直锁着。个人对锁不是很了解,请问能详细解释一下怎么使用吗?
    capljf
        12
    capljf  
    OP
       2019-07-12 17:40:08 +08:00
    @lihongjie0209 抱歉,是我没有考虑到这些情况。你提的也很对,我想需求应该是如果第四个人进入,如果系统还有未分发的单就给第四个人派单
    capljf
        13
    capljf  
    OP
       2019-07-12 17:40:56 +08:00
    @wawzw123 好的好的,之前没有做过类似需求。刚刚搜索的时候都想不出什么好的关键词,派单这个太对了,应该是完美契合
    capljf
        14
    capljf  
    OP
       2019-07-12 17:41:46 +08:00
    @lhx2008 感谢,和 3 楼的建议思路是一样的,这个思路很棒
    NotNil1
        15
    NotNil1  
       2019-07-12 17:44:07 +08:00
    乐观锁,查询之后加标记
    capljf
        16
    capljf  
    OP
       2019-07-12 18:37:03 +08:00
    @ljtletters 你好,请问如何加标记呢。我只是查询数据,一次查询,一次更新,如果在保证两次请求用的一个事务呢
    wenzhoou
        17
    wenzhoou  
       2019-07-13 08:13:23 +08:00 via Android
    用户 a 点审核开始,就把数据库改为 状态:审核中,担当者 a。这个任务就给 a 了。一直到 a 用户点审核结束,或者取消。你得要画一个状态迁移图。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2634 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 06:50 PVG 14:50 LAX 22:50 JFK 01:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86