你好,我需要以某种方式合并来自多个来源的用户,例如 facebook、Google、plaxo ......目前我的数据库中有这个结构:
USERS_MYSITE
mysite_user_id | parameter | value
------------------------------------------
223 | firstname | Tom
223 | lastname | N.
223 | birthdate | 1985-01-30
USERS_FACEBOOK
mysite_user_id | facebook_user_id | parameter | value
-------------------------------------------------------------
223 | 456353453 | fname | Tom
223 | 456353453 | lname | N.
223 | 456353453 | birth | 1985-01-30
USERS_GOOGLE
mysite_user_id | google_user_id | parameter | value
-----------------------------------------------------------
223 | tomtom22 | fn | Tom
223 | tomtom22 | ln | N.
223 | tomtom22 | brt | 1985 JUN 30
USERS_VIEW
mysite_user_id | remote_user_id | site_name | parameter | value
---------------------------------------------------------------------------
223 | 223 | mysite | firstname | Tom
223 | 223 | mysite | lastname | N.
223 | 223 | mysite | birthdate | 1985-01-30
223 | tomtom22 | google | fn | Tom
223 | tomtom22 | google | ln | N.
223 | tomtom22 | google | brt | 1985-01-30
223 | 456353453 | facebook | fname | Tom
223 | 456353453 | facebook | lname | N.
223 | 456353453 | facebook | birth | 1985 JUN 30
然后 SELECT FROM USERS_VIEW WHERE mysite_user_id = '223' 我得到了所有用户信息。之后我可以使用几个传输数组,将所有远程数据转换为我的格式
Array("firstname" => Array("fn", "fname"), "birthdate" => Array("brt", "birth"), ...)
价值观也是如此。接下来取决于用户选择什么作为他的主要数据,我可以显示它。
问题是我以前从未做过,所以也许有人知道如何做得更好。请分享你的想法。
谢谢你。