【发布时间】:2015-07-11 17:11:40
【问题描述】:
我有一组可供用户选择的类别(电影、音乐、书籍等)并对所选类别中的项目进行评分。
因为每个类别都有不同的参数(movies 有 year,music 有 artist 等)我想将每个类别分成自己的集合,但是,这带来了必须引用的问题到评级集合中的正确文档(选项 1)。
将所有类别分开并在收视率集合中包含一堆参考资料会更聪明吗?或者将所有类别合并到一个集合中,其中每个文档的大部分参数都为空白(选项 2)?
编辑:我想另一种选择是让每个类别都有自己的收视率集合(即MovieRatings),但这会有点混乱......
选项 1:
项目:
Movies = {
title: String,
year: Number,
imageUrl: String
}
Music = {
title: String,
artist: String,
imageUrl: String
}
评分:
Ratings = {
user: ObjectId,
movie: { type: Schema.Types.ObjectId, ref: 'Movies' },
music: { type: Schema.Types.ObjectId, ref: 'Music' },
...
rating: Number
}
选项 2:
项目:
Items = {
title: String,
artist: String,
year: Number,
imageUrl: String
}
评分:
Ratings = {
user: ObjectId,
item: { type: Schema.Types.ObjectId, ref: 'Items' },
rating: Number
...
}
【问题讨论】:
标签: mongodb mongoose schema mongodb-query