@Renhor

Какую бд, MySQL или MongoDB, использовать для моего сайта на node?

Добрый день! До этого использовал на бекенде PHP + Mysql, сейчас пишу проект с бекендом на Node.

Данные в новом проекте будут примерно такие же как и в старом, а именно:

1) Users
2) Players
3) Orders
4) Reviews
5) Chat
6) Notifications
7) Matches
8) Heroes
9) Items
10) Blog

К некоторым таблицам есть доп. таблицы со связью один к одному.

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

Для меня "эластичность" mongodb выглядит привлекательно, например, я мог бы отказаться от некоторых таблиц(коллекций) и зависимостей один к одному, просто создавая в записи (документе) дополнительное поле-объект.

Но шерстя интернет наткнулся на фразу на тостере, что если есть 10% шанс, что между таблицами будут отношения/связи, то лучше использовать реляционные бд (в моем случае mysql).

Если это действительно так, то с какими трудностями я бы столкнулся, если бы решил все-таки использовать MongoDB?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
@frozen_coder
Java-developer
Надо смотреть на данные и как они будут использоваться. Если они полны отношений, т.е. носят ярко выраженный реляционный характер, вам нужны запросы с join и транзакционностью, то берите MySQL и всё. К тому же в MySQL есть возможность хранить JSON и вроде даже индексы по нему строить.

Mongodb брать хорошо, когда у данные можно выразить через документ. Т.е. по максимуму все связанные сущности встроить в один документ. Join по факту надо делать руками, т.е. через приложение. Многие фишки реляционных БД как бы есть, но работают похуже, чем в реляционных (есть и схема, и транзации и вроде join, но это такое, лучше избегать по возможности).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Hivemaster
@Hivemaster
Админ, который хочет программировать
Готовьтесь к большему потреблению памяти, чем с MySQL.
Ответ написан
inoise
@inoise
Solutions Architect, AWS Certified, Hybrid Cloud
Каждому решению своя база данных. Надо смотреть на проект в целом и как всё будет коммуницировать. Будет ли архитектура микросервисная или монолитная? Будет ли SPA или SSR?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Квадро Санкт-Петербург
от 80 000 до 200 000 руб.
Суши-Маркет Омск
от 50 000 руб.
Playkot Санкт-Петербург
от 180 000 руб.
21 июл. 2019, в 00:52
80000 руб./за проект
20 июл. 2019, в 19:38
10000 руб./за проект
20 июл. 2019, в 17:55
15000 руб./за проект