7

Вопрос по MongoDB

Товарищи, подскажите, научите, плиз.

Я  прочитал информацию по MongoDB, даже учебник нашёл  и буду там черпать инфу, но у меня, скорее, идеологический вопрос!

Вот как правильно организовывать и хранить в ней данные, именно идейно правильно. Я видел рассуждения на СтекОверФлоу, но вот пока не складывается и реляционная модель плотно сидит в голове. Можно ли на каком-то примере связанных таблих и о том, как это хранить в Монге?

Лига программистов

2.3K поста12K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

0
Автор поста оценил этот комментарий

Здесь есть несколько подходов. Самый тупой - как я показал в комменте выше, то есть добавлять продукты в магазины напрямую.


Можно делать сущность product_list, где будешь хранить собственно список айдишников продуктов в массиве, а уже айдишник этого продуктлиста хранить в сущности магазина. получается в аналогии к реляционным связь многие ко многим.


Еще есть подход для скорости работы (потому что составные индексы на массивы монги не всегда хорошая штука) это заводить реляционную базу с индексами. То есть данные по продукту а ля какого цвета и какая стоимость хранишь в монге. а вот поисковые данные а ля партномер, скуй или категория хранишь в sql с привязкой к монговым айдишникам. но это потребует какой-то транзакционности.


По поводу проектирования могу дать совет, что отталкивайся от типичных запросов и юз-кейсов. Как только выпишешь эти запросы, то сразу становятся понятнее точки оптимизации и на какой сущности сосредоточиться.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Блин... ну вот а полноценный пример, например, БД для Пикабу, вот оно как бы выглядело?

показать ответы
0
Автор поста оценил этот комментарий

Допустим у нас есть какой-нибудь продукт и связанная с ним картинка

Связь будет просто по айдишникам.

product:

{

_id : ObjectId('1'),

name : "randomproduct",

resources: [

ObjectId(2),ObjectId(3)

]

}


resource:

{

_id:ObjectId('2"),

name:"url1"

},

{

_id:ObjectId(3),

name:"url2"

}

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А если ещё и магазины ... вот раньше я бы делал отдельную таблицу для магазинов и связывал бы магазины с продуктами через ключ, а тут как лучше?

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества