MongoDB дизайн базы данных - PullRequest
0 голосов
/ 15 марта 2019

Итак, я проектирую модель для документов, которые я вставлю в свою базу данных, и у меня есть вопрос о дизайне. Лучше просто вставить больше документов в мои коллекции или меньше вложенных документов? Пример:

sale:{
  store_id : "2",
  vendor_id: "2,
  points : 100
}


sale:{
  store_id : "2",
  vendor_id: "2,
  points : 100
}


sale:{
  store_id : "2",
  vendor_id: "2,
  points : 100
}

sale:{
  store_id : "4",
  vendor_id: "3,
  points : 100
}

sale:{
  store_id : "4",
  vendor_id: "1,
  points : 100
}

Итак, в этом не вложенном примере, если у меня N продаж, у меня будет N продаж внутри моих коллекций. Но если я попытаюсь вложить, мой пример будет:

stores:{ [
  store_id : "2" 
  vendor : [
      vendor_id : "2"
      sales : [
        points : 100
      ],
      [ 
        points : 100
      ],
      [
        points : 100
      ]
  ]
],
[
  store_id: 4
  vendor : [
    vendor_id : 3
    sales : [
      point : 100
    ]
  ],
  [
    vendor_id : 1
    sale : [
      point : 100
    ]
  ]
] }; 

В этом примере я вкладываю все свои продажи. Итак, мой вопрос: для создания отчетов и анализа данных, какой из них быстрее? Если я хочу посмотреть, в каком магазине продается больше, например, будет ли быстрее анализировать вложенные документы или однострочные документы?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Ответ довольно прост.Если вы знаете, что будет много продаж и их число не ограничено, вам придется купить отдельную коллекцию для продаж.Mongodb разработан, чтобы работать удивительно быстро, даже если в коллекции миллион документов, но, что интересно, при вложении вы столкнетесь с множеством проблем.Кроме того, в mongodb есть ограничение на размер документа в 16 МБ, поэтому со временем ваш документ в одном хранилище достигнет этого предела, и это сделает вещи довольно уродливыми.Совершенно очевидно, что вы должны пойти на отдельную коллекцию.

Вы также можете прочитать этот блог, и он прояснит для вас вещи https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-1

0 голосов
/ 15 марта 2019

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

Так что мой ответ - второй.

...