2012-03-23 4 views
1

this questionとほぼ同じことを達成したいと思います。 、LinkedIn、openID、自分のサイトなど)を使用して、1人のユーザーが任意の/すべての上記のプロバイダから自分のアカウントにログインできるようにします。同じアカウントの複数のログインチャンス(Facebook-Connect、Oauth、OpenIDなど)を可能にするデータベーススキーマ

唯一の注意点は、すべてのユーザーデータを1つのテーブルに格納する必要があることです。

、これを達成するために何クリーン方法がない場合、それはおそらく、ログインメソッドのすべての列のトンを持っているか、バックユーザテーブルに関連する外部キーを持つログインメソッドを処理するために追加のテーブルを作成することをお勧めします(this answerに記載されています)?

答えて

2

おそらく、実際のユーザーのテーブルと共に、勘定タイプ専用のテーブルを作成したいとします。

ユーザごとにauto_incrementのUinique IDを持つusersテーブルがあるとします。次に、別のテーブルの例を作成します:user_accounts、それ自身のauto_icnrement ID、リレーショナルIDの別のカラム(usersテーブル、およびアカウントタイプの3番目(または/))4番目のテーブル/必要に応じて認証用の余分なデータ

あなたはその後、基本的にはこのように見えるかもしれ各ユーザーの各アカウントの種類のレコードを挿入します。それには

user_accounts

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

は最も単純な形式だあなたは、おそらくよりもはるかに異なるデータを格納します。それが、うまくいけばポイントを得る。

関連する問題