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

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

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

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