Алло,
Мне нужно объединить пользователей из нескольких источников, например, 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
Затем ВЫБЕРИТЕ ИЗ USERS_VIEW, ГДЕ mysite_user_id = '223', и я получил всю информацию о пользователе. После этого я могу использовать несколько массивов транспорта, чтобы преобразовать все удаленные данные в мой формат
Array ("firstname" => Array ("fn", "fname"), "birthdate" => Array ("brt", "birth"), ...)
то же самое относится и к значениям. Далее, в зависимости от того, какой пользователь выбрал в качестве своих основных данных, я могу показать его.
Проблема в том, что я никогда не делал этого раньше, поэтому, возможно, кто-то знает, как сделать это лучше. Пожалуйста, поделитесь своими идеями.
Спасибо.