разработка схемы для подкатегорий - PullRequest
2 голосов
/ 30 июня 2019

В качестве примера я хочу иметь категории продуктов питания, подкатегории и сами пункты меню. У всех пунктов меню должна быть категория, но не у всех должна быть подкатегория.

Итак, что-то вроде:

Пример только категории:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...