В качестве примера я хочу иметь категории продуктов питания, подкатегории и сами пункты меню. У всех пунктов меню должна быть категория, но не у всех должна быть подкатегория.
Итак, что-то вроде:
Пример только категории:
Hamburgers
- Bacon and cheese
- Chicken
Пример категории и подкатегории:
Pizza
Traditional
- Cheese and mushroom
- Tomato and ham
Deluxe
- Bacon, ham, salami, steak
Это означает, что подкатегория является необязательной. Итак, при построении формы для добавления пункта меню, должна ли быть опция none в подкатегории или если в выпадающем меню ничего не выбрано, было бы хорошо вставить пустую строку в базу данных?
Вот так выглядит моя схема, но не уверен, подходит ли она для того, что мне нужно.
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);
Схема категории и подкатегории в значительной степени одинакова, но было бы лучше иметь две отдельные схемы для категории и подкатегории или иметь только схему категорий со встроенной подкатегорией внутри или как лучше всего это сделать?
const categorySchema = new mongoose.Schema({
name: {
type: String,
required: true,
minlength: 5,
maxlength: 255
}
});
const Category = mongoose.model("Category", categorySchema);