网站之前有用户注册功能,为了让豆瓣用户更方便的登录到我的网站上,最近正在增加“用豆瓣登录”功能,
原先的用户注册功能,是把用户的 username、email、nickname、password 信息存到 users 表中,其他的年龄、地址、简介等信息存到 profile 表中。
原先的注册、登录功能很久之前就已经写完,其他的功能也都搞定,可以说网站已经做完了。
但是后来在增加”用豆瓣登录“功能时,发现豆瓣返回的用户信息和我上面写的数据表结构不一致,比如,豆瓣返回的数据是这样的,和我的users表数据结构不一致:
"id": "1000001",
"uid": "ahbei",
"name": "阿北",
"avatar": "
http://img3.douban.com/icon/u1000001-28.jpg", //头像小图
"alt": "
http://www.douban.com/people/ahbei/",
"relation": "contact", //和当前登录用户的关系,friend或contact
"created": "2006-01-09 21:12:47", //注册时间
"loc_id": "108288", //城市id
"loc_name": "北京", //所在地全称
"desc": "现在多数时间在忙忙碌碌地为豆瓣添砖加瓦。坐在马桶上看书,算是一天中最放松的时间。”
于是为了不和以前的 users 表冲突,我又新建了一个 douban_users 表,用来单独存储用豆瓣登录的用户。目前已经能够把用豆瓣登录的用户信息保存到数据库 douban_users 表中。
可以说目前为止一切正常。
但是。。。
查询用户的时候就出现麻烦了,因为不知道如何解决以下问题,所以发帖请教:
因为现在查询用户的相关代码都是查询的 users 表,比如获取昵称、头像神马的,增加了这个 douban_users 表之后,就得先判断这个用户是不是通过豆瓣登录的,如果是,就去查询douban_users;如果不是,就去查原先的users表。想到这里,我觉得不对劲,所以就没有继续往下写代码。
虽然我知道能通过以上的判断来解决问题,但是总觉得这么做不是最好的解决办法。而且如果以后再增加”用新浪微博登录“、”用腾讯微博登录“啥的,返回的数据结构再不一样的话,就又要重新建表,再增加一个判断。
不知道大家在处理类似”用豆瓣登录“这种功能的时候,有没有遇到这样的问题?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/54990
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.