Mongodb存储朋友关系

时间:2016-06-13 07:43:22

标签: mongodb database-design

我正在使用MongoDb作为我们正在开发的移动应用程序之一。它具有同步联系人的功能。

我想知道在mongodb中存储关系(朋友关系而不是RDBMS关系)的理想方式。我想知道相同的架构。

我想到了以下用户集合结构:

{
    _id: ObjectID(abc),
    name: "abc",
    contacts: ["def", "ghi"]
}

在上面的集合中,我正在考虑"def""ghi"作为用户abc的朋友的对象ID。这是正确的做法吗?或者有人可能会建议我采用他们可能实施的更好,更正确的方式吗?

我所担心的是,在将来检索特定用户的朋友的数据时,我不应该卡住或达到性能。

考虑如果我想从我的朋友那里收集活动中的所有活动。

1 个答案:

答案 0 :(得分:3)

我认为你可以利用noSql结构并保存/提供更多关于朋友的信息

{
    _id: ObjectID(abc),
    name: "abc",
    contacts: [{id:"def" name:"John"}, {id:"ghi", name:"Sari"} ]
}

要显示基本列表,您只需要一个查询,然后输入名称(或其他重要的相关详细信息) - 检查活动。

这种结构的额外开销是每次用户更新名称时都需要更新名称(和其他详细信息) - 但这不是锤子 - 谁经常更改名称?

相关问题