如何为应用程序设计用户帐户和用户的社交帐户数据库

时间:2016-06-08 06:36:30

标签: facebook mongodb web-services google-account

我有一个应用程序,用户可以通过提供email, username and password来注册。

这将存储在mongoDB集合Users_Table中。现在,该应用还允许用户使用social media account进行签名,前提是用户有facebook, google account and twitter

问题是如何设计数据库?

我最初的想法是拥有2个独立的收藏品。如果他或她在应用程序中注册,则第一个集合具有用户信息。

User_Table (
Id,
firstname,
lastname,
email,
phone_number)

如果用户拥有社交媒体帐户,则第二个集合存储社交媒体帐户,例如facebook,google或twitter。

我将从他们的社交媒体帐户中检索用户名字,姓氏,电子邮件和phone_number,并将其存储在该集合中。这将存储在第二个集合中。

现在,如果已登录Facebook的用户决定注册该应用,我如何合并这两个帐户,即如果它是同一个用户我如何链接它们?

1 个答案:

答案 0 :(得分:0)

嗯,使用mongo背后的商业决策是什么?

我为什么要问?当有人决定切换到mongo时 - 使用它提供的优势将是完美的。

所以我的建议将把这些细节嵌入一个集合中:

user:{
       /* base fields */
       _id, firstName, lastName, nickName, userName, email.... etc
      socialAccount:[
                 {
                    type:"facebook/twiter/whtsEver"
                    name, /*and all  other stuff you need here*/
                     }]
}

那么应用需要的是让 ONE 调用mongo并立即获取 所有 数据。不需要 加入