我有一个应用程序,用户可以通过提供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的用户决定注册该应用,我如何合并这两个帐户,即如果它是同一个用户我如何链接它们?
答案 0 :(得分:0)
我为什么要问?当有人决定切换到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并立即获取 所有 数据。不需要 加入 。