монга же, там лучше использовать ненормализованную структуру
насколько это актуально сейчас? может это устаревший совет 10-летней давности?
вы замучаетесь потом проводить аналитику над этими тудушками
А может и нет 🤷♂ Связи то есть в монге, но нет проверки целостности
Можно пример? Что будет сложно сделать?
узнать общее количество выполненных тудушек у всех юзеров
если архитектор выбрал монгу для реляционной задачи, то ему на целостность наплевать
Вообще не проблема, элементарный агрегат будет Но это какой-то странный кейс, посчитать общее число выполненных всеми пользователями тудушек
у вас сервис а-ля трелло,хотите знать активность юзеров, чем не кейс?
Протестую, прокурор делает предположения 😁
Повторюсь, это элементарная агрегация Конечно она будет выполняться дольше, чем в случае нормализованной структуры, но написать её вообще не проблема
Во вложеных доках нет индексов, ограничение размера документа в 16 мб, да и чем больше документы, тем медленнее идет выборка. Делал когда-то вложеные документы, потом замахался под них агрегации писать, всегда лучше выносить
Если выносить, то выносить всё сразу в реляционную бд 🤷♂ 16 мб это много, для списка тудушек должно хватить. Если вдруг упрется в нехватку места, можно вынести выполненные тудушки - их вряд ли будут запрашивать всегда вместе с пользователем
В реляционную не в реляционную, это кому как больше нравится, факт в том, что с вложенными документами больше головной боли, чем профита, так можно хранить например список телефонов пользователя, или еще какие данный, которых будет немного и по которым не нужно будет пороводить выборки
Выборки по тудушкам странная задача. Найти все тудушки у всех пользователей со словом "сметана"? 🤔 Я могу ошибаться, не силён в монге. Но если уж взяли такой инструмент, надо использовать его как принято, а не как другой инструмент, более подходящий для такой задачи
если вы взяли монгу это еще значит что нужно засунуть все данные приложения в 1 документ
Не надо доводить до абсурда Все данные приложения засовывать в один документ не надо, а вот связанные данные вполне можно
А как принято? И чем реляционные базы лучше подходят для этой задачи? Кроме того, что данные целосные. Лучше использовать инструмент, который ты лучше знаешь, с этой задачей обе базы одинаково хорошо справятся.
но в случае с тудушками проще будет пичкать тудушки в монге всякими тегами, вложениями и т.д. в sql пришлось бы либо отдельные таблицы делать, либо поле с json
Кстати Индексировать и массивы, и вложенные объекты таки можно docs.mongodb.com/manual/core/index-multikey/ Видимо, вам надо было сначала разобраться с возможностями монги, тогда может и не было бы нужны выносить
это ок, но агрегации всякий раз писать это то еще занятие)
Какие именно агрегации? Я пока не понимаю, в чём может быть сложность
Я знаю про это, но по опыту использования работает это так себе
Обсуждают сегодня