第三方登录用户信息表设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/buyueliuying/article/details/86135737

user表:站内账号表,即原始的账号-密码信息表
字段有 user_id ,username,password

social_account表:第三方账号信息表
如 wx_account :微信账号信息表
alipay_account:支付宝账号信息表

字段有id , openid,user_id

通过两个表的user_id字段关联即可

这样设计的话,有个地方需要思考,那就是实际业务中活动中,用户识别是以哪个id作为唯一识别。

以电商下单为例,
情况一:用户已经注册了站内账号,然后通过‘微信绑定’功能授权登录,最后下单
情况二:用户没有注册站内账号,直接用微信授权登录,然后下单了;

对于情况一,订单表对应的用户唯一识别就是user_id;
而对于情况,订单表对应的用户唯一识别就是openid;

那这里就有问题了,订单表是不是既要存user_id,也要微信的openid ?那后续再做支付宝登录时是不是还要增加支付宝的openid字段呢?
还有就是查询的时候是用user_id还是相应的openid来查询?

这个问题的解决方案要看具体的业务需求。
如果第三方账号下单前必须绑定一个已存在的站内账号,那问题很好解决,
先查询相应的social_account表,找到user_id字段的值,如果为空就提示用户做‘绑定站内账号’的操作,那这时订单表的用户识别就是user_id;

如果允许第三方账号可以直接下单,并且后续可以绑定到某个站内账号,那么就要做数据的合并了,需要另外做程序处理。

猜你喜欢

转载自blog.csdn.net/buyueliuying/article/details/86135737
今日推荐