@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?
  • Вопрос задан
  • 214 просмотров
Решения вопроса 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?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы