系统多账号合并实现的思考

系统可通过多途径注册,如手机号码,微信等第三方认证。同一个真实用户有多个账号,如何合并为一个?

2种思路:

方案一:不修改系统其它模块,新增一个账号合并功能。然后对所有关联userid的表进行更新。建要合并的用户id合并为同一个userid。如:userid分别为:1,3,6的3个用户合并为用户id为1的用户。合并功能需要对其它所有关联到用户id的表进行更新,将历史记录中的userid为1,3,6的记录改为1。即丢弃id为3和6的用户,将其数据合并到用户到1用户。

优点:对原业务系统框架基本无改动。业务逻辑相对简单,容易理解。

缺点:

1.需要分析哪些表中的关联的id需要修改,如果表多的话容易漏。

2.每当业务需要扩展功能时,都需要考虑合并用户功能是否要对应修改,将扩展的表中的userid进行合并。

3.如果合并功能出bug,导致数据错乱,问题严重。对合并功能编写需要仔细仔细再仔细。

方案二:查询用户数据时使用 userId in (1,3,6)。

优点:数据较安全。

1.不用修改数据库表的历史数据,主要对所有业务查询sql 进行修改,如userid=3 改为userId in (1,3,6)

2.及时有部分业务逻辑漏改了,也方便测试。即使有bug,也能及时修正。

缺点:如果已有业务模块较多,那么改动工作量较大,容易漏以及出现新的bug。

总结:

关联userid的表较少,系统基本稳定,不会有大量新功能增加建议使用方案一。

新开发系统建议使用方案二,在设计时就考虑有用户合并的情况。用开发规范文档要求业务模块开发。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值