android第三方登录数据库设计以及业务数据流向说明
2016-08-22 15:20
295 查看
最近公司开发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清空。
android第三方登录数据库设计以及业务数据流向说明
这里设计两张数据库表,一张是账号表,用来存储手机注册的帐号,或者第一次通过第三方登录之后,默认生成的帐号信息,另一张表是第三方帐号绑定关系表。
表结构如下(只暂时基础的字段):
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清空。
android第三方登录数据库设计以及业务数据流向说明
相关文章推荐
- android第三方登录数据库设计以及业务数据流向说明
- 数据库之设计表:用户表信息以及第三方登录信息如何同步?
- 牛腩新闻视频 05讲 数据表操作类设计 要知道每个数据库表的操作类要干什么 以及 数据库和C#的命名规范
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法
- Android学习 之 Bitmap Drawable byte[] 三者之间的转换以及把数组存入数据库及提取数据重新组合成所需对象,如图像
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- [求助]关于共享数据设计上以及android机制上的问题
- android第三方登录以及第三方分享
- 浅谈数据库用户表结构设计,第三方登录
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- android 常用的数据库表以及操作说明
- 1.读写分离(主数据库写 可分拆副数据库读);2.垂直分库(将系统按业务进行了垂直拆分主数据库);3.水平分主库(ID生成算法决定了如何拆分数据,以及增删改查)
- 支持差异数据保存的数据库实体类设计(三)(续) ——基类抽象ObjBase的构建以及子类实现
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- 1.Android数据库的创建以及添加数据
- google第三方登录集成说明(android)
- ios数据存储——数据库:SQlite3以及第三方库FMDB