z0ng
@z0ng
Python-developer

Какую БД выбрать для видео-сервиса по типу раздела видео ВК?

У сервиса есть центральный раздел с видео, откуда пользователи смогут добавлять себе в профиль понравившиеся видео, прикреплять к видео теги (у каждого юзера свои теги, которые он создает). Варианты выборок:
  • Просто все видео пользователя
  • Видео по тегу
  • Поиск по заголовку среди всех видео на сайте
  • Поиск по заголовку среди всех видео пользователя


Все варианты сортируются по дате добавления.
Пока выбрал для себя 2 возможных СУБД - Postgresql и Mongodb.

С архитектурой на Постгресе все более-менее понятно - есть таблицы с видео, с тегами, и промежуточная таблица для видео и тега. Из минусов - не очень удобно редактировать теги у видео пачкой, т.е. когда юзер за один запрос некоторые теги добавляет к видео, а некоторые удаляет. Все это порождает лишние запросы к базе. Возможно, стоит хранить теги внутри json-поля в промежуточной таблице? Быстро ли будет работать выборка?

В Монго это можно реализовать удобнее, но не понятно как хранить сами видео - в отдельной коллекции видео и в отдельной юзеров, а внутри юзера хранить id'шники видео и теги? Быстро ли будет работать такая выборка, если вытаскивать все видео пользователя по тегу?

Что бы выбрали вы и почему?
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 2
Deissh
@Deissh
I like Python, Node.JS, Go, pain, bugs and my cat.
Преждевременная оптимизация почти всегда вредит, если монга, то да раздельно хранить, но нужны индексы иначе будет долго. Существуют bulk и aggregate запросы для того что бы не порождать кучу запросов. Для работы с теги можно использовать $push и $pull что бы добавлять/удалять теги по одному.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
ArangoDB
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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