Мон goose побеждает цель не SQL? - PullRequest
0 голосов
/ 19 февраля 2020

Как я понимаю, одна из целей MongoDB (или вообще без SQL db) - обменять пространство на скорость. Вместо того чтобы иметь несколько «таблиц», ссылающихся друг на друга, мы напрямую включаем объект, на который ссылаются объекты, даже если это означает дублирование данных, что позволяет нам получать всю информацию из одного объекта.

например, с такими объектами, как это:

Orders: [{
  numberOfItem: 1,
  shippingAdress: '...',
  item: {
    price: 3,
    name: 'hat'
  }
},{
  numberOfItem: 3,
  shippingAdress: '...',
  item: {
    price: 3,
    name: 'hat'
  }
}]

вместо чего-то вроде этого:

Orders: [{
  numberOfItem: 3,
  shippingAdress: '...',
  itemId: 2345
},{
  numberOfItem: 3,
  shippingAdress: '...',
  itemId: 2345
}]

Items: [{
  id: 2345
  name: 'hat',
  price: 3
}]

Конечно, я знаю, что вам не нужно использовать SQL, как это, вы все равно можете выбрать любой из способов в соответствии с ситуацией.

Но меня беспокоит тот факт, что система схем Mon goose, кажется, фокусируется только на эталонном пути. Затем он предоставляет несколько отличных инструментов (плагин autopopulate) для автоматического выполнения всех ссылок, создавая иллюзию, что вы можете получить свой объект одним вызовом, но на самом деле у вас все еще есть доступ к нескольким таблицам.

Когда я проектирую свой схема с mon goose У меня всегда есть ощущение, что я мог бы использовать mySQL вместо

Неужели мое понимание всего этого совершенно неверно? Я sh это так.

...