Схема базы данных, обеспечивающая несколько возможностей входа (Facebook-Connect, Oauth, OpenID и т. Д.) Для одной и той же учетной записи - PullRequest
1 голос
/ 24 марта 2012

Я хочу выполнить почти то же самое, что и этот вопрос , который должен хранить данные аутентификации из нескольких источников (Facebook, Twitter, LinkedIn, openID, мой собственный сайт и т. Д.), Чтобы один человекможете войти в свою учетную запись от любого / всех упомянутых провайдеров.

Единственное предостережение в том, что все пользовательские данные должны храниться в одной таблице.

Есть какие-нибудь предложения?

Если не существует способа clean , лучше ли иметь тонны столбцов для всех возможныхметоды входа в систему или создание дополнительных таблиц для обработки методов входа с помощью внешних ключей, относящихся к пользовательской таблице (как описано в этот ответ )?

1 Ответ

3 голосов
/ 24 марта 2012

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

Допустим, у вас есть таблица пользователей с идентификатором uiique auto_increment для каждого пользователя.Затем вы хотите создать еще один пример таблицы: user_accounts с собственным идентификатором auto_icnrement, другой столбец для реляционного идентификатора (для таблицы пользователей и 3-й (или / и) 4-й таблицы для типа учетной записи / дополнительных данных для аутентификации, если это необходимо.

Затем вы вставляете запись для каждого типа учетной записи для каждого пользователя. В основном это может выглядеть следующим образом:

user_accounts

| ID | User_ID | account_type       | authentication
| 1  | 1       | facebook           | iamthecoolestfacebookerever
| 2  | 1       | google             | mygoogleaccount

В наиболее упрощенной форме.вероятно, будет хранить данные, отличные от этих, но, надеюсь, вы поймете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...