哪种方式会更有效率?
我更习惯于MySQL,但我决定在这个项目中使用MongoDB。 基本上它是一个社交网络。
我有一个帖子集合,其中的文档目前看起来像这样:
{
"text": "Some post...",
"user": "3j219dj21h18skd2" // User's "_id"
}
我正在寻求实施答复系统。 简单地添加一个喜欢用户的数组会更好吗,如下所示:
{
"text": "Some post...",
"user": "3j219dj21h18skd2", // User's "_id"
"replies": [
{
"user": "3j219dj200928smd81",
"text": "Nice one!"
},
{
"user": "3j219dj2321md81zb3",
"text": "Wow, this is amazing!"
}
]
}
或者,最好是为每个回复设置一个具有唯一ID的单独“答复”集合,然后在帖子集合中通过ID“链接”它?
我不确定,但感觉第一种方式更像“NoSQL-like”,第二种方式是我将用于MySQL的方式。
任何投入都欢迎。
这是MongoDB中一个典型的数据建模问题。 由于您打算存储用户的_id,因此答案肯定是嵌入它的,因为这些回复是帖子对象的一部分。
如果这些回复的数量可以是数百或数千,并且您不会默认显示它们(例如,您将让用户点击以加载这些评论),那么将回复存储在单独的页面中会更有意义采集。
最后,如果您需要存储比_id更多的用户(例如名称),则必须考虑在复制数据时在两个地方(此处和用户维护页面中)维护名称。 这可以控制或者工作太多。 你必须决定。
链接地址: http://www.djcxy.com/p/88753.html上一篇: which way will be more efficient?
下一篇: Create one collection for each user vs create one collection for all user