我有一组用户可以选择的类别(电影,音乐,书籍等),并对所选类别中的项目进行评分。
因为每个类别都有不同的参数(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
...
}