Я в настоящее время сталкиваюсь с вопросом о том, что использовать для создания программного обеспечения. Система должна справляться со сложностью, такой как:
— Управление пользователями (например: логин тренера — логин клиента)
Различные панели (в зависимости от профиля пользователя)
Workout Builder (тренер должен уметь создавать программы тренировки и отправлять (электронная почта) и прикреплять (клиент может видеть программу тренировки в системе) программу к клиенту)
Планы диеты (так же, как выше)
Библиотека тренировок
Бронирование / Календарь (Клиент должен иметь возможность заказать тренера)
Учебные журналы и т.д …
Как вы можете видеть, было бы много связей / привязок и т. Д., А также персонализация (Dashboards) и т. Д. … Я думаю, вы поняли 🙂 — Тем не менее, я разработчик Frontend, у меня есть опыт PHP и MySQL (однако давным-давно) — Итак, вопрос в том … Можно ли полностью построить эту систему с ex: Angular, Express, Mongo и Node — Или мне придется зависеть от системы баз данных, такой как mySQL, и использовать ex: PHP для этой системы? ?
Заранее спасибо за любые ответы 🙂
Да, можно использовать чистый стек JavaScript, такой как MEAN: MongoDB, Angular, Express, Node.js.
Все, что делает MySQL, может сделать и MongoDB. Вопрос только в правильном проектировании базы данных и производительности для конкретных случаев использования.
По моему мнению, если ваш практический опыт работы с PHP и MySQL достаточно хорош, вы должны развернуть свое приложение с PHP и MySQL с MongoDB в качестве дополнительной базы данных.
Я понимаю, что MEAN-стек может включить ваше полное приложение, но время разработки было бы больше, и, как я чувствовал, используя MongoDB над петабайтами данных, MongoDB удивительно хорош для хранения сложных данных в плоской архитектуре в большом размере. , Но, как и все базы данных, даже MongoDB имеет определенные ограничения.
Вы должны продолжить использовать MySQL для своих обычных учетных данных для входа в систему и незначительных действий, для хранения планов диеты, библиотеки тренировок используют MongoDB. Потому что это дает вам гибкость изменяющейся структуры документа и высокую доступность. Со временем вам будет легче работать с MongoDB, чем с MySQL.
Использование MEAN Stack — это здорово. Но теперь я предпочитаю использовать смешанную архитектуру MySQL, MongoDB и PostGres. Если вы собираетесь использовать какой-либо фреймворк, он, вероятно, будет содержать ACL или доступен как дополнение, и это может помочь вам в создании разрешений и ролей пользователей.
Кроме того, если вы используете MongoDB, убедитесь, что вы кодируете в соответствии с механизмом MMAP или WiredTiger, мне пришлось сделать серьезную перекодировку из-за изменений в механизме хранения. Просто на голову!