用户使用不同帐户登录的数据库模式

时间:2013-02-27 11:15:32

标签: database facebook authentication logging openid

目前我需要为不同的社交帐户(facebook,google,twitter等)提供网站日志记录。

我知道stackoverflow有相同的系统,我想知道在公共访问中是否有stackoverflow数据库模型。所以我可以找到在我的数据库中存储用户数据的正确方法。

目前我有下一个问题。

所以,我有我的用户表:

  • 用户ID
  • 用户名
  • RegistrationDate
  • 电子邮件
  • 评分

对于使用网站表单创建帐户的用户,我使用下一个附加信息:

  • 密码
  • 名字
  • 头像

我怀疑如何为使用社交网络登录的用户存储数据以及我应该存储什么。 似乎我不需要存储facebook姓名,姓氏等。我想在我需要的页面上用js获取它。

此外,我正在考虑如何为用户提供添加Facebook,推特参考等的个人资料。

P.S。 我使用DotNetOpenAuth通过社交网络进行用户身份验证。使用asp.net MVC 3。 关于我网站上的功能: 只是为用户添加文章和评级。 对于评论,我使用https://disqus.com/

1 个答案:

答案 0 :(得分:0)

理想情况下,您应该有两张桌子。一个用户和一个用于身份。在“用户”表中,您可以存储应用程序用户ID,姓名,电子邮件等内容。在“身份”表中,您可以链接回“用户”表中的人员,但拥有“网络”#39 ;该字段说明了身份行所针对的网络(例如Facebook,Google,Twitter等)。

“身份”表可以存储特定于该平台的用户ID和详细信息,例如Facebook的User_ID,Twitter用户名等。用户在Users表中将有一个条目,但在Identities表中可以有许多条目,具体取决于用户连接的网络数量。

相关问题