作为一个例子,我想要食物类别,子类别和实际菜单项本身。所有菜单项都必须具有类别,但并非所有菜单项都必须具有子类别。
所以,像这样:
仅类别示例:
Hamburgers
- Bacon and cheese
- Chicken
类别和子类别的示例:
Pizza
Traditional
- Cheese and mushroom
- Tomato and ham
Deluxe
- Bacon, ham, salami, steak
这意味着子类别是可选的。因此,在构建表单以添加菜单项时,子类别上应该没有选项吗?或者如果从下拉菜单中未选择任何内容,是否可以在数据库中插入空字符串?
这是我的架构,但不确定是否适合我的需求。
const menuSchema = new mongoose.Schema({
name: {
type: String,
required: true,
minlength: 5,
maxlenth: 255
},
description: {
type: String,
required: true,
minlength: 5,
maxlength: 255
},
price: {
type: Number,
required: true,
min: 0
},
category: {
type: categorySchema,
required: true
},
subcategory: {
type: subcategorySchema
}
});
const Menu = mongoose.model("Menu", menuSchema);
类别和子类别架构几乎相同,但是最好为类别和子类别使用2个单独的架构,或者只在类别架构中嵌入嵌入式子类别,或者这样做的最佳方法是什么? / p>
const categorySchema = new mongoose.Schema({
name: {
type: String,
required: true,
minlength: 5,
maxlength: 255
}
});
const Category = mongoose.model("Category", categorySchema);