【发布时间】:2012-04-01 00:06:14
【问题描述】:
所以在关系数据库中,我可能有 2 个表,“用户”和“事件”,它们具有多对多关系,因此连接表“用户事件”说。现在,除了 2 个 ID 之外,我还有一些想要存储在此表中的数据,例如一个名为“Enjoyed”的布尔值。
我知道在 Mongo 中,您会在表格之间创建嵌入式链接,例如使用猫鼬
var Person = new Schema({
email: String,
events: [EventFeedback]
})
var Event = new Schema({ ... });
var EventFeedback = new Schema({
person: Schema.ObjectId,
event: Schema.ObjectId,
enjoyed: Boolean
});
但这真的是最好的建模方式吗?我会认为 EventFeedback 中的所有内容都可以在 Person.events 中,它会被 Event._id 索引?或者这只是 Mongoose 的一个限制?
【问题讨论】:
-
老实说,如果您发现自己需要联接,我只会使用关系数据库。
-
实际上,我认为我需要的是Embedded Documents,它有点像模型,但主要用于定义数组内容的结构。我只是担心如何通过事件 ID(或任何外部 ID)查看这些嵌入式文档之一......?
标签: mongodb database-design mongoose database