こんにちは、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"), ...)
値についても同様です。次に、プライマリ データとして選択したユーザーに応じて、それを表示できます。
問題は、私が以前にそれをやったことがないということです。あなたのアイデアを共有してください。
ありがとうございました。