【发布时间】:2020-08-04 15:53:15
【问题描述】:
大家好,我在使用 MongoDB 时遇到问题,我不知道如何设计数据库来支持类别和子类别...
所以我尝试创建一个有 2 个模型的测验应用程序:
问题模型
- 我将包含问题
类别模型
- 它包含问题所在的类别
这就是我想要完成的,我想构建测验应用程序,测验应用程序将有 3 个主要类别:A 类别、B 类别和 C 类别...
注意:每个类别的子类别不会超过 20 个
每个类别都有自己的子类别,如下所示:“A 类别”将包含 Test1、Test2、Test3、Test4、Test5... 与“B 类别”相同,它将包含 Test1、Test2、Test3、Test4 ....
注意:我不会有超过 3 个主要类别
每个 Test1、Test2 子类别都将包含一个问题列表
所以我的模型是这样的:
类别模型:
export const CategorySchema = new mongoose.Schema({
parent: {
type: mongoose.Schema.Types.ObjectId,
ref: "Category"
},
name: { type:String, required:true },
slug: String,
});
问题模型:
export const QuestionSchema = new mongoose.Schema({
question: { type:String, required:true },
options: [String],
answers: Array,
category: {
type: mongoose.Schema.Types.ObjectId,
ref: "Category"
}
});
另外一个问题是,我希望一个问题成为不同子类别的一部分,就像它可以成为 A 类别 > 测试 1,B 类别 > 测试 2,A 类别 > 测试 3, 所以我可以在不同的子类别之间重复使用它
我的问题是:这是设计数据库的正确方法吗?或者有没有其他方法
【问题讨论】:
标签: mongodb mongoose aggregation-framework data-modeling