Каков наилучший дизайн базы данных для подключения и использования социальных сетей для пользователей? - PullRequest
3 голосов
/ 10 декабря 2010

В моем текущем приложении я хотел бы предложить пользователям возможность подключать их через пароль или любую социальную сеть или открытые платформы id.

Я также опубликую сообщение на их стене.(Facebook, Twitter, в основном, гудение), если они связывают свои учетные записи с моим приложением.

Проблема, с которой я сталкиваюсь, заключается в том, как я могу организовать свои таблицы в базе данных.

Вот как бы я это сделал,но без каких-либо убеждений:

User(first_name, last_name, email)
LocalUser(password, user_id)
FacebookUser(token, user_id)
GoogleUser(token, user_id)
EtcUser(...)

Если пользователь подключится через Facebook, я заполню все данные в таблице пользователей, которые смогу, и тогда у него будет возможность подключить мое приложение к другим сетям (например,Google и Twitter).

Но проблема этой реализации заключается в том, что если пользователь подключается через Facebook один раз, использует приложение, не подключаясь к другим социальным слоям, а затем подключается через Google, приложение не будетпризнать, что это тот же человек и создаст новую учетную запись, с нуля.

Кроме того, вполне возможно, что таблицы для сеанса (FacebookUsну, GoogleUser и т. д.) и таблицы для связанных учетных записей будут другими (может быть, токен для доступа к социальной сети и ключ для использования приложения различны?)

У меня уже есть такая таблица сеансоводин:

// Maybe I should add a new column for identifying from which type come the token (Local, Facebook, Google, etc)
Session(date, ip, token, user_id)

Как вы думаете, этот метод хорош?у вас есть лучший?

Спасибо!очень много!

...