php - 第三方登陆表的设计问题
習慣沉默
習慣沉默 2017-05-16 13:07:14
0
2
809

一个用户表
id name
然后每一种第三方就新增一个表
ex 微信
id openid uid(主用户表id) .....

QQ
id openid uid

这样用户用不同的第三方就会有不同的账号 一个用户就拥有了多个账号了
如何实现数据互通呢 比如微信登陆 可以绑定QQ 那么以后微信和QQ的信息就同步了

習慣沉默
習慣沉默

Antworte allen(2)
習慣沉默

可以有几种方式:
第一种,冗余字段
用户表user : id name phone email .....
第三方登录表login:id uid wxopenid qqopenid......
创建的时候给''然后后面绑定的时候更新相关字段。
第二种 拆表
用户表:user : id name phone email .....
第三方表:openid: id wx_openid qq_openid....
关系表relationship:uid oid 这里的oid就是第三方表
这样设计的目的是 不用join操作,因为数据多了以后join操作很耗时间,我们在代码逻辑层先根据当前登录的uid获取relationship的oid,然后再selectopenid表的相关数据。

不太建议都放在一个表的做法。。。

左手右手慢动作

1、为啥不是用一张表,表里有个字段,类似 type,表示是哪种第三发登录呢。

2、用两个不同的第三方登录,的确就生成了两个账号了。这个时候如果再想把这两个账号合并,就比较复杂,牵涉到使用哪里数据了。当然也是可以这么做,大不了信息同时发到多个账号。

一般的思路,先有一个账号(账号来源可以使某种第三方登录,邮箱注册,手机注册)反正要有一个账号,然后呢登录以后绑定新的一个第三方账号。可以参数 SF 账号设置嘛, /user...


更新一下,一个表维护多个第三方登录 之 我的个人理解
表字段 - oauth 表
id // 可以自增
type // 可以是 wx,qq,weibo 等等
user_id ,//对应 user 表中的id
data ,// mysql-text 类型,里面是 json 格式或者可以用 php 的序列化格式,我是推荐 json 格式,对应不同的 type 想存就存什么,对于数据读取,存放都没什么差别。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!