Как правильно спроектировать структуру этих товаров и атрибутов в Монго - PullRequest
0 голосов
/ 05 октября 2018

Добрый день.Я хочу разработать схему данных для хранения продуктов с различными атрибутами в mongodb, но я не знаю, как это сделать правильно, сохраняя при этом гибкость и скорость.Например, каждый продукт может иметь марку и требовать ссылки на него, а также сортировки и отображения возможных значений.Кроме того, можно, например, переименовать марку.

Я могу хранить данные следующим образом:

Схема 2

[
  {
     name: "t-shirt",
     brand: "SampleBrand"
  },
  {
     name: "t-shirt",
     brand: "SampleBrand2"
  }
]

Тогда, если мне понадобится получить всю марку, придется пройти всю коллекцию документов.Кроме того, если я хочу переименовать «SampleBrand» в «SampleBrand84», мне нужно будет просмотреть всю коллекцию.Я думаю, что это очень много времени.

Другой вариант - использовать ссылки на таблицу с брендами.

Схема 2

Бренды [

{_id: 1, имя: "SampleBrand"},

{_id: 2, имя: "SampleBrand2"}]

Продукты [

{

имя: "футболка",

марка: 1

},

{

имя: "футболка",

бренд: 2

}]

Тогда я могу изменить название бренда в одном месте, чтобы изменить его везде.Но теперь при каждом запросе к продукту мне нужно выполнить поиск в $, чтобы получить название бренда, а увеличение количества атрибутов продукта значительно увеличит нагрузку на mongo.

Я также могу использовать схему2 таблицы, чтобы получить копию в виде схемы 1 и получить плюсы обоих вариантов, но тогда непонятно, как правильно их синхронизировать друг с другом.

Посоветуйте, как правильно это сделать?

Также интересует возможность использования нескольких языков и аналога модели EAV (из реляционных баз данных), то есть, когда может быть неорганизованное количество атрибутов с разными именами и определенный список свойств (еслиНужно напишу пример)

Пожалуйста, поделитесь своим опытом проектирования данных в mongodb.Я буду очень признателен вам, если вы аргументируете свой ответ.

...