用户合并的问题和思考 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
iam
V2EX    程序员

用户合并的问题和思考

  •  
  •   iam 2022-12-06 11:56:06 +08:00 2918 次点击
    这是一个创建于 1118 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求场景

    • ①. 用户可以用多种三方渠道登录平台,每个渠道账号都是单独的用户,完善信息时可以选择绑定其他登录方式;
    • ②. 用户想要将两个账号合并,那么需要将相关的数据表都合并一遍;
    • ③. 使用事务合并,保证原子性;

    问题

    • I. 会有长事务;
    • II. 会出现死锁;

    解决方式思考

    一、斩草除根型(不提供合并)

    1. 在多个登录渠道中,设置一个 主账号(一般手机号);
    2. 保留原版各渠道独立;

    二、正常合并

    1. 整理所有用户相关操作,保证操作顺序和合并顺序一致,避免死锁;
    2. 用户合并时锁定用户,所有操作都不可执行,要在相关操作中判断用户的锁定状态,如:redis 锁;

    目前考虑的解决方案复杂度都较高

    理论上来说第一种的处理方式会更好一点,但是基于上线了一些时间的项目,只能用第二种;

    还有哪些处理方式呢,这些解决方式会不会带来什么问题

    11 条回复    2022-12-06 17:34:44 +08:00
    JerryX
        1
    JerryX  
       2022-12-06 12:38:50 +08:00
    合并是为了解决多渠道账号关联同一组 resource ,还是每个渠道账号关联有各自的 resource 。
    先说说出发点、现状、问题,具体问题还是要具体分析
    iam
        2
    iam  
    OP
       2022-12-06 13:24:46 +08:00
    @JerryX 每个渠道账号关联有各自的 resource 。
    fkdtz
        3
    fkdtz  
       2022-12-06 13:52:33 +08:00
    这种事一旦开了合并的口子,后面一堆事儿。

    例如用户根本不明白也不理解什么是账户合并,看到按钮就是一通点,之后发现账户里面数据不对了可能就会客服反馈,然后你就等着回滚吧。

    建议搞成手机号登录为主,其他登录渠道都是与手机号绑定的关系,这样用户理解起来也容易,数据也不会乱,开发起来也容易一些。
    JerryX
        4
    JerryX  
       2022-12-06 13:53:30 +08:00
    不了解你的业务背景,按我的理解:
    有一个用户主表,你是打算增加一个用户渠道表,合并操作应该是停用原用户表的数据,在用户渠道表增加一条记录?
    edis0n0
        5
    edis0n0  
       2022-12-06 13:55:17 +08:00
    我见过的平台都是禁止合并的,要合并只能留一个主账号,剩下的账号注销,然后去主账号绑定
    julyclyde
        6
    julyclyde  
       2022-12-06 14:19:59 +08:00
    而且还有合并“过来”和合并“过去”的区别,很多系统在提示信息方面差的一塌糊涂
    optional
        7
    optional  
       2022-12-06 14:24:28 +08:00 via iPhone
    考虑下你要合并的资源哪些是必须合并的,哪些是可以放弃的,可以放弃的就当注销处理
    vitoliu
        8
    vitoliu  
       2022-12-06 15:02:14 +08:00 via iPhone   1
    关联用户设置新 id ,新用户 id 通过 canal 离线任务关联现有的用户数据。灰度验证。
    dallaslu
        9
    dallaslu  
       2022-12-06 15:44:38 +08:00   1
    ipwx
        10
    ipwx  
       2022-12-06 15:52:36 +08:00
    @edis0n0 都是互联网厂子,用户数据不值钱也不要紧,所以才有这种事情。

    碰到什么政务系统整体合并的时候,根据身份证进行合并才是真的刚需。
    kkhaike
        11
    kkhaike  
       2022-12-06 17:34:44 +08:00   1
    建议干死这个产品
    或者增加必备资料的导入 /导出
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2473 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 04:20 PVG 12:20 LAX 20:20 JFK 23:20
    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