1

我正在开发一个 node.js + mongoose webapp,我对数据库的创建有一个疑问。数据库是这样定义的:

var user = new Schema({
 id : ObjectId,
 name : String,
 password : String,
 email : String,
 created : Date
});
var comment = new Schema({
 id : ObjectId,
 userId: ObjectId,
 content : String,
 created : Date
})

我想将每条评论与其用户联系起来......那么......这是最好的方法?我想将这两个中的一个添加到评论架构中......但我不知道它是否是正确的答案,或者是否还有另一个更好的答案:

userId: ObjectId,

或者:

userObject: user

谢谢!

希望你能帮我!

4

2 回答 2

1

这得看情况。你的问题没有明确的答案。通常,我建议您不要使用本机 MongoDB 字段引用,这会带来轻微的大小开销。

对于我所有的项目,我肯定会选择第一个解决方案,它通常更灵活,并且可以节省一些磁盘空间。以不得不自己再做一个请求为代价。

于 2012-05-24T20:52:06.333 回答
0

这种情况下的简单数据结构是使用 mongoose 所称的嵌入文档

正如 Brandon Tilley 提到的,您可能还想看看类似 DBRef 的行为并填充mongoose 的功能。这将允许您将您的评论实体作为一个单独的、独立的实体来处理。不利的一面是,如果您有评论的实例并想要访问用户的属性,则必须先填充对用户的引用。

最后,这取决于您的用例以及您希望如何浏览信息。我说不要想太多,试试看。如果您稍后决定另一种结构效果最好,只需更改它。幸运的是,对于 MongoDB 和 NoSQL,这通常非常简单。

于 2012-05-29T03:35:42.877 回答