2013-02-27 133 views
0

當前我需要爲不同的社交帳戶(臉書,谷歌,推特等)提供網站登錄。用戶使用不同帳戶登錄的數據庫方案

我知道,stackoverflow具有相同的系統,我不知道是否有公共訪問中的stackoverflow數據庫模型。所以我可以找到正確的方式將用戶數據存儲在我的數據庫中。

目前我有下一個問題。

所以,我有我的表用戶:

  • 用戶名
  • 用戶名
  • RegistrationDate
  • 電子郵件
  • 評級

對於誰與網站創建帳戶的用戶我使用下一個附加信息的形式:

  • 密碼
  • 名字
  • 阿凡達

我的股票的問題如何存儲誰與社交網絡的登錄,我應該如何存儲用戶的數據。 看來,我不需要存儲Facebook名稱,姓氏等。我想過在需要它的頁面上使用js來獲取它。

此外,我想如何爲用戶提供添加他的個人資料添加Facebook,Twitter引用等。

P.S. 我正在使用DotNetOpenAuth通過社交網絡進行用戶驗證。使用asp.net MVC 3. 關於我的網站上的功能: 只需爲用戶添加文章和評分即可。 對於我使用https://disqus.com/的評論。

回答

0

理想情況下,你應該有兩張桌子。一個用於用戶,一個用於身份。在用戶表中,您存儲了諸如應用程序用戶標識,名稱,電子郵件等內容。在標識表中,您可以鏈接回用戶表中的人員,但具有「網絡」字段,該字段指明哪個網絡的標識行適用於(例如Facebook,Google,Twitter等)。

Identities表可以存儲特定於該平臺的用戶ID和詳細信息,例如,用戶名,Facebook用戶名,Twitter用戶名等。用戶在Users表中有一個條目,但在Identities表中可以有多個條目,具體取決於用戶連接的網絡數量。