2013-02-27 95 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表中可以有多个条目,具体取决于用户连接的网络数量。