我正在使用MongoDb作为我们正在开发的移动应用程序之一。它具有同步联系人的功能。
我想知道在mongodb中存储关系(朋友关系而不是RDBMS关系)的理想方式。我想知道相同的架构。
我想到了以下用户集合结构:
{
_id: ObjectID(abc),
name: "abc",
contacts: ["def", "ghi"]
}
在上面的集合中,我正在考虑"def"
和"ghi"
作为用户abc
的朋友的对象ID。这是正确的做法吗?或者有人可能会建议我采用他们可能实施的更好,更正确的方式吗?
我所担心的是,在将来检索特定用户的朋友的数据时,我不应该卡住或达到性能。
考虑如果我想从我的朋友那里收集活动中的所有活动。
答案 0 :(得分:3)
我认为你可以利用noSql结构并保存/提供更多关于朋友的信息
{
_id: ObjectID(abc),
name: "abc",
contacts: [{id:"def" name:"John"}, {id:"ghi", name:"Sari"} ]
}
要显示基本列表,您只需要一个查询,然后输入名称(或其他重要的相关详细信息) - 检查活动。
这种结构的额外开销是每次用户更新名称时都需要更新名称(和其他详细信息) - 但这不是锤子 - 谁经常更改名称?