android第三方登录数据库设计以及业务数据流向说明

最近公司开发android项目,用户可以通过注册的手机帐号登录,也可以通过第三方登录(QQ、新浪微博、微信),手机帐号可以绑定第三方帐号,第三方帐号也可以绑定手机帐号。

这里设计两张数据库表,一张是账号表,用来存储手机注册的帐号,或者第一次通过第三方登录之后,默认生成的帐号信息,另一张表是第三方帐号绑定关系表。

表结构如下(只暂时基础的字段):

user表(帐号表)

userid   varchar(64),// 用户编号GUID,主键

username varchar(64),// 用户姓名

register_type int ,// 帐号生成类型,手机注册、QQ、微信、新浪微博

u_qq_key  varchar(64),// 第三方登录QQ的唯一标识

u_wx_key  varchar(64),// 第三方登录微信的唯一标识

u_xlwb_key varchar(64)// 第三方登录新浪微博唯一标识


thirdlogin(第三方登录帐号关联表)

thirdguid  varchar(64),// 主键GUID

userid      varchar(64),// 用户帐号GUID,外键

third_key  varchar(64)// 第三方登录唯一标识


业务数据流向:

第三方登录

例如QQ登录,默认在user表中插入一条记录,register_type为QQ,u_qq_key为第三方QQ登录生成的唯一标识,同时在thirdlogin表中插入一条记录,userid为user表生成帐号的userid,third_key为第三方登录的唯一标识,其他第三方登录帐号类似。


首次注册手机帐号:

在user表中插入一条记录,register_type为手机,thirdlogin表不用操作


第三方帐号绑定手机帐号(以QQ帐号为例):

1)首先第三方帐号只能绑定手机帐号,不会存在直接的第三方帐号之间绑定,例如qq绑定新浪微博,这是不存在的。

2)第三方帐号未绑定手机帐号之前,使用第三方帐号登录,进入系统之后可以提示绑定手机帐号,绑定手机帐号需要把thirdlogin表中的之前的QQ帐号生成的那条记录的userid替换成绑定的手机帐号的userid,然后android系统的数据切换到绑定的手机帐号的数据上。

这个时候会存在一个情况,就是如果之前是第三方QQ帐号的信息都没有了,显示的都是新的手机帐号的数据。

3)如果需要看之前的第三方qq登录的时候数据信息的时候,需要解除绑定,然后用第三方qq登录之后查看。


手机帐号登录:

1)如果手机帐号之前未绑定第三方帐号:绑定qq帐号,假设这个qq帐号已经被其他手机帐号绑定过了,那么需要提示一下,但是依然可以继续绑定(因为具有该qq的操作权限),绑定之后,需要把thirdlogin表中的之前的QQ帐号生成的那条记录的userid替换成绑定的手机帐号的userid,如果之前没有用第三方帐号登录过,那么需要插入一条thirdlogin表中的记录。

2)如果第三方帐号已经绑定了手机帐号,那么用第三方帐号登录的时候,会自动关联手机帐号,实际上相当于使用的手机帐号登录。

3)解除第三方绑定,可以把third表中的第三方帐号的关联记录中的userid清空。



  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值