170 похожих чатов

А зачем? В чём Профит выносить тудушки из юзера? Это

монга же, там лучше использовать ненормализованную структуру

22 ответов

16 просмотров

насколько это актуально сейчас? может это устаревший совет 10-летней давности?

вы замучаетесь потом проводить аналитику над этими тудушками

Алексей-Попов Автор вопроса

А может и нет 🤷‍♂ Связи то есть в монге, но нет проверки целостности

Алексей-Попов Автор вопроса

Можно пример? Что будет сложно сделать?

узнать общее количество выполненных тудушек у всех юзеров

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

Алексей-Попов Автор вопроса

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

у вас сервис а-ля трелло,хотите знать активность юзеров, чем не кейс?

Алексей-Попов Автор вопроса

Протестую, прокурор делает предположения 😁

Алексей-Попов Автор вопроса

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

Во вложеных доках нет индексов, ограничение размера документа в 16 мб, да и чем больше документы, тем медленнее идет выборка. Делал когда-то вложеные документы, потом замахался под них агрегации писать, всегда лучше выносить

Алексей-Попов Автор вопроса

Если выносить, то выносить всё сразу в реляционную бд 🤷‍♂ 16 мб это много, для списка тудушек должно хватить. Если вдруг упрется в нехватку места, можно вынести выполненные тудушки - их вряд ли будут запрашивать всегда вместе с пользователем

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

Алексей-Попов Автор вопроса

Выборки по тудушкам странная задача. Найти все тудушки у всех пользователей со словом "сметана"? 🤔 Я могу ошибаться, не силён в монге. Но если уж взяли такой инструмент, надо использовать его как принято, а не как другой инструмент, более подходящий для такой задачи

если вы взяли монгу это еще значит что нужно засунуть все данные приложения в 1 документ

Алексей-Попов Автор вопроса

Не надо доводить до абсурда Все данные приложения засовывать в один документ не надо, а вот связанные данные вполне можно

А как принято? И чем реляционные базы лучше подходят для этой задачи? Кроме того, что данные целосные. Лучше использовать инструмент, который ты лучше знаешь, с этой задачей обе базы одинаково хорошо справятся.

но в случае с тудушками проще будет пичкать тудушки в монге всякими тегами, вложениями и т.д. в sql пришлось бы либо отдельные таблицы делать, либо поле с json

Алексей-Попов Автор вопроса

Кстати Индексировать и массивы, и вложенные объекты таки можно docs.mongodb.com/manual/core/index-multikey/ Видимо, вам надо было сначала разобраться с возможностями монги, тогда может и не было бы нужны выносить

это ок, но агрегации всякий раз писать это то еще занятие)

Алексей-Попов Автор вопроса

Какие именно агрегации? Я пока не понимаю, в чём может быть сложность

Я знаю про это, но по опыту использования работает это так себе

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта