powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB - помогите со структурой данных
10 сообщений из 10, страница 1 из 1
MongoDB - помогите со структурой данных
    #38961005
dimzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил в рамках изучения NoSQL сделать что-то полезное - "торрент-треккер" (ну формально не треккер а каталогизатор, аналог the pirate bay).

Выбрал mongo потому что может полнотекстовый поиск (не нужен сфинкс, качество для поиска по наименованию раздачи вполне достаточно).

Итого у меня 3 основных "сущности"
- раздача (торрент) - полиморфная структура (набор полей зависит от категории аудио/видео итд)
- пользователь
- комментарий к раздаче

Как известно проектирование NoSQL идет от необходимой функциональности, поэтому перечислю все функции:

- отображение свежих раздач в разрезе/без разреза категорий
- поиск по наименованию раздачи
- отображение раздачи с комментариями к ней
- поиск всех комментариев конкретного пользователя (для модерирования)
- поиск всех торрентов конкретного пользователя (для модерирования)

Предполагаю следующую схему хранения:
Документ "раздача" содержит упорядоченный массив MongoID комментариев к раздаче
Документ "комментарий к раздаче" содержит MongoID раздачи, пользователя, имя пользователя (денормализация)

итого запрсы для модерирования (нечастые) будут выполняться "реляционным" образом
основной же "запрос" на получение раздачи с комментариями будет "получить раздачу по id" + "получить список комментариев по списку id"

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

Есть какие-либо замечания/предложения. Хчется получить максимально эффективный/высокопроизводительный продукт (для минимизации расходов на хостинг)
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961204
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimzonРешил в рамках изучения NoSQL сделать что-то полезное - "торрент-треккер" (ну формально не треккер а каталогизатор, аналог the pirate bay).

Выбрал mongo потому что может полнотекстовый поис кА чего не ElasticSearch? И NoSQL, и полнотекстовый поиск.
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961231
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimzonДокумент "раздача" содержит упорядоченный массив MongoID комментариев к раздачеЗачем? Где-то надо выводить количество комментариев?

dimzonДокумент "комментарий к раздаче" содержит MongoID раздачи, пользователя, имя пользователя (денормализация)Нормальная форма относится к реляционной модели данных.
В качетсве идентификатора не обязательно ObjectId использовать, можно и String, и GUID (с Int-ом маленькая проблема: в JavaScript его нет, и при написании Stored JavaScript приходится это учитывать, т.к. инты начинают превращаться в даблы).

dimzonитого запрсы для модерирования (нечастые) будут выполняться "реляционным" образомКакой ещё "реляционный" образ? Создаёте пару индексов ( db.collection.ensureIndex() ): по идентификатору раздачи и по пользователю, - и делаете find по этим полям.

dimzonосновной же "запрос" на получение раздачи с комментариями будет "получить раздачу по id" + "получить список комментариев по списку id"Логично :)

dimzonАльтернативно обдумывал возможность внедрения массива комментариев внутрь раздачи, но не совсем понимаю как для модерации искать комменты конкретных пользователей...Даже и не думайте. Существует ограничение на размер документа (не более 16 МБ): MongoDB Limits and Thresholds .

dimzonЕсть какие-либо замечания/предложения. Хчется получить максимально эффективный/высокопроизводительный продукт (для минимизации расходов на хостинг)Зачем тут MongoDB? :) Запаритесь разворачивать, администрировать и сопровождать.
Плюс на хостингах любят брать деньги за место на диске, а MongoDB с определённого момента времени начинает аллоцировать файлы базы по 2 Гига, даже если вы всего 100 КБ добавили :)
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961878
dimzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAА чего не ElasticSearch? И NoSQL, и полнотекстовый поиск.
монга вроде как менее к ресурсам требовательна

skyANAЗачем? Где-то надо выводить количество комментариев?
Какой ещё "реляционный" образ? Создаёте пару индексов (db.collection.ensureIndex()): по идентификатору раздачи и
по пользователю, - и делаете find по этим полям.
насколько я понимаю добавление новой строки (комментария) в индекс не мгновенно. т.е. сделав insert в последующем find-е можно свежевставленный документ не "поймать". То-то будет удивлен пользователь, который коммент к раздаче написал но не увидел. А так - явно добавил ID комментария в массив к раздаче и все...


skyANAДаже и не думайте. Существует ограничение на размер документа (не более 16 МБ)
Ну и сколько нужно настрочить комментариев дабы 16 мегабайт набралось?

skyANAЗачем тут MongoDB? :) Запаритесь разворачивать, администрировать и сопровождать.
Плюс на хостингах любят брать деньги за место на диске, а MongoDB с определённого момента времени начинает аллоцировать файлы базы по 2 Гига, даже если вы всего 100 КБ добавили :)
Шардинг, горизонтальное масштабирование.
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961890
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimzonskyANAА чего не ElasticSearch? И NoSQL, и полнотекстовый поиск.
монга вроде как менее к ресурсам требовательна

skyANAЗачем? Где-то надо выводить количество комментариев?
Какой ещё "реляционный" образ? Создаёте пару индексов (db.collection.ensureIndex()): по идентификатору раздачи и
по пользователю, - и делаете find по этим полям.
насколько я понимаю добавление новой строки (комментария) в индекс не мгновенно. т.е. сделав insert в последующем find-е можно свежевставленный документ не "поймать". То-то будет удивлен пользователь, который коммент к раздаче написал но не увидел. А так - явно добавил ID комментария в массив к раздаче и все...Вы это об text indexes? Как Вы себе полнотекстовый поиск по ID представляете?

dimzonskyANAДаже и не думайте. Существует ограничение на размер документа (не более 16 МБ)
Ну и сколько нужно настрочить комментариев дабы 16 мегабайт набралось?Разделите ведь на средний размер комментария :) Я откуда знаю, может у вас пользователи будут скрины к фильмам вставлять, или другие какие картинки в base64.

dimzonskyANAЗачем тут MongoDB? :) Запаритесь разворачивать, администрировать и сопровождать.
Плюс на хостингах любят брать деньги за место на диске, а MongoDB с определённого момента времени начинает аллоцировать файлы базы по 2 Гига, даже если вы всего 100 КБ добавили :)
Шардинг, горизонтальное масштабирование.А какой не дорогой хостинг, включающий "шардинг, горизонтальное масштабирование" Вы выбрали, если не секрет?
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961906
dimzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю что-нить типа Amazon EC итп на первое время (подкупает возможность увеличить мощность на время пиковой нагрузки)
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961910
dimzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAВы это об text indexes? Как Вы себе полнотекстовый поиск по ID представляете?
Ну я не спец в монге, в коучбейзе например все индексы асинхронно строятся (т.е. поиск всех комментариев к раздаче через индекс может давать подобную задержку)
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961927
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimzonДумаю что-нить типа Amazon EC итп на первое время (подкупает возможность увеличить мощность на время пиковой нагрузки)И какая нагрузка планируется?
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961936
dimzon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,
хз, но принципиально горизонтальное масштабрование выдержит все, знай наращивай мощности - добавляй шарды
...
Рейтинг: 0 / 0
MongoDB - помогите со структурой данных
    #38961960
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimzonskyANA,
хз, но принципиально горизонтальное масштабрование выдержит все, знай наращивай мощности - добавляй шардыпонятно, удачи :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB - помогите со структурой данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]