@DeniSidorenko

Как реализовать такой функционал на MERN?

Добрый день, есть интернет магазин. Продукты и их категории. Связь между ними строиться на том , что у продукта есть свойство cateogory: в котором идет ID категории
type: Types.ObjectId,
ref: "Category",


Сейчас заметил такую особенность что при удаление категории, у продукта остается id категории, которая не существует. В данном случае хорошо поступили разработчики WordPress, у них всегда есть категория Без категории (uncategorized ) которую нельзя удалить. И если категория удаляется , посты автоматически применяются к той категории. Возможно ли повторить такой функционал и здесь?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
KulakovAngel
@KulakovAngel
Full Stack Developer (Node.JS)
Я бы реализовал следующим образом.
Допустим, мы используем Mongoose. При этом у нас есть схемы Category и Product. Одно из полей Product, как Вы заметили, ссылается на Category. В Category же я сделал бы виртуал "Products", представляющий собой массив (виртуал - то, что не хранится в БД, но модель его заполняет, следуя некоторой логике: здесь, например, будет заносить в массив все продукты, которые ссылаются на нее). Не забудем создать категорию "uncategorized"

Так. Это был предварительный этап. Теперь основное. При удалении любой категории проходимся по ее виртуальному массиву "products" и для всех продуктов меняем ссылку с данной категорией на ссылку на категорию "uncategorized". Профит!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!
ответ однозначный. Возможно!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы