Я изо всех сил пытался смоделировать отношения в MongoDB для веб-сайта электронной коммерции.
У меня есть коллекция документов, представляющих продукты, которые будет продавать мой магазин, что-то вроде:
db.products.insertOne({
_id: 1,
name: "iPhone",
sold_in: [ObjectId('1'), ObjectId('2')]
});
И у меня есть еще один представитель, представляющий магазины, например:
db.stores.insertOne({
_id: 1,
name: "Apple Store",
products_sold: [ObjectId(1)]
});
У меня здесь отношения многие ко многим, товар можно продавать во многих магазинах, а магазин может продавать много товаров. .
Мне нужно ответить на следующие вопросы:
«Какие продукты продаются в этом конкретном магазине?»
«В каких магазинах продается этот продукт? «
Я представлял эту взаимосвязь, храня массив ссылок ObjectId продуктов в документе магазина и массив ссылок магазинов в документе продукта.
Но я чувствую, что естьлучше, новые продукты будут добавляться и удаляться из магазинов часто, и эта модель делает операцию обновления кошмаром.
То, что не будет сделано часто, будет обновлятьсяПри покупке продукта и смене магазина, в котором он продается, это случится, но редко.
Это отношение многих ко многим не сбалансировано с одной стороны, что я могу сделать, чтобы улучшить его? Что ты думаешь по этому поводу?