问一个 web 开发的问题,如何控制多人同时操作一个内容? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhaogaz
V2EX    问与答

问一个 web 开发的问题,如何控制多人同时操作一个内容?

  •  
  •   zhaogaz 2018-12-27 12:20:36 +08:00 2112 次点击
    这是一个创建于 2485 天前的主题,其中的信息可能已经有所发展或是发生改变。

    希望大家看看正文,我觉得用权限模型不太适用,谢谢

    目前产品那边提出了一个需求,我个人是没有找到一个非常恰当的模型来解决这个问题,故来提问。

    业务描述

    假设有三个用户,分别是,张三,李四,王五。

    操作的页面流程是这个样子

    页面 1-页面 1.1-页面 1.1.1 | | 页面 2 页面 1.2 | 页面 3-页面 3.1-页面 3.1.1 

    要求:

    1. 张三操作 1.1 的时候,1.1.1 和 1 不可操作,锁定.(即锁定 1.1 所有相关的父和子)
    2. 张三操作 1.1 的第一条数据的时候,李四可以操作 1.1 的第二条数据,不可操作第一条

    我的尝试

    1. 我试着把以上内容抽象成类似于并发控制的模型,但是底层操作都是 ns,ms 级别,而在 web 流程中,整个操作是几十 s,或者是几分钟的级别,差太多了。感觉对照不了
    2. 权限的模型,我理解为验证与授权,但是常见的权限,都是固定各种类型权限的,或者是由管理员统一分配的,感觉权限没法做。
    3. 尝试中英文搜了下,总是搜的不对,找不到类似的东西

    所以问问各位大佬,有做过类似的东西么?什么样的模型合适?(实际比这个东西多,我这里只是说明下举个简单例子)

    4 条回复    2018-12-27 18:14:39 +08:00
    zn
        1
    zn  
       2018-12-27 12:31:13 +08:00 via iPhone   1
    并发控制时间越短越难做,你现在十几秒甚至几分钟的,简直再容易不过了,我没觉得有什么不对。
    xiaoxinshiwo
        2
    xiaoxinshiwo  
       2018-12-27 12:35:06 +08:00   1
    db 层乐观锁
    ooeyunarika
        3
    ooeyunarika  
       2018-12-27 12:51:54 +08:00   1
    服务端记录操作和上锁,websocket 广播操作,多端同步状态,延迟取决于网络
    alvinbone88
        4
    alvinbone88  
       2018-12-27 18:14:39 +08:00   1
    关键词 BPMN
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2731 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 14:54 PVG 22:54 LAX 07:54 JFK 10:54
    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