Какую базу данных использовать для такого проекта?
В общем делаю проект
Frontend - Vue,
Бекенд - буду пробовать писать на Laravel, до этого все на php делала
И вот такой вопрос какая база данных лучше подойдет для проекта?
Проект с регистрацией и авторизацией
Todo List - список задач и заметок с довольно сложным интерфейсом
Примерно такой интерфейс будет
И ещё когда лучше реляционную и нереляционную использовать?
Желательно с пояснениями почему, какая-то бд сдесь подойдет лучше и т.п.
Дополнительно:
Ну, на основной вопрос уже ответили, а я освещу отдельную проблему, которая очень часто волнует умы юных падаванов.
когда лучше реляционную и нереляционную использовать?
Ответ на этот вопрос очень простой.
Нереляционная БД - это НЕ база данных.
А узкоспециализированное хранилище, которое может выполнять какую-то одну определенную функцию лучше, чем база данных. Это может быть кэширующий демон, или поисковый движок, или решение для аналитики, или какое-то подсобное хранилище для всякого мусора.
Как только осознаёшь этот простой факт, то всё сразу становится на место:
Если нужна база данных, то и использовать надо базу данных. Реляционную. Какую именно - в вашем случае не принципиально.
Если вдруг проект пройдет стадию "неясные идеи", и выльется во что-то практическое, и даже появится какая-то нагрузка, то можно будет начать думать про использование одного или нескольких подсобных хранилищ в дополнение к базе данных.
-
Нереляционная БД - это НЕ база данных
Нереляционная база да
анных - это НЕ база данныхВы сами не видите противоречия в вашем утверждении?
- ClayRing, вопрос не ко мне, а к тем кто эти служебные программы причисляет к базам данных.
К их чести сказать, с Редисом и мемкешем такое случается довольно редко
Тут подходит любая реляционная SQL БД потому что нет противопоказаний. Реляционку мы выбираем
уже более 30 лет как default вариант и почти не ошибаемся.
Когда задача имеет признаки ярко выраженной high-load системы - мы делаем ей частичную денормализацию
и раскладываем ее в NoSQL Key-Value решение. Но это не про улучшение а это про неизбежность. У нас нет выхода просто.
Иначе мы клиенту не сможем быстро отдать какой-то резуальтат.
Когда задача имеет ярко выраженную документную природу (нет спецификации на values) - мы берем MongoDb/CouchDb.
Когда задача хранит граф и ищет в графе и вообще требует графовых алгоритмов - то мы берем Neo4j или ей подобные.
Когда задача хранит данные измерений (телеметрия) - то предпочтительно взять InfluxDb или ей подобные. Здесь-же мы предполагаем что у нас - не будет joins а будет только измерения в диапазоне времени.
Но в данном ТЗ и на картинке обычная SQL БД (MySQL/Postgres) вполне себе нормально справляется.
Ответы:
Выбирать базу данных по картинке - задача неблагодарная. В вашем случае я не вижу каких-то особых требований к базе, поэтому возьмите ту базу которую вы уже знаете. Если не знаете ни одной - возьмите MySQL (самая популярная база для WEB проектов)
Любая база. MySQL справится на ура.
Думаю в данном случае вполне подойдет Postgres, для более структурированного хранения данных, нежели использование NoSQL СУБД. Там уже продумать структуру таблиц можно спокойно и подготовить миграции в проекте.
Любую СУБД, с чем дружит php, и заводится с полточка: mySQL (лучше брать 8+ версию, а не 5.x, так как намучаетесь с реализацией аналогов оконных функций), postgresql и т.д.
И ещё когда лучше реляционную и нереляционную использовать?
Чем структуированнее и связаннее данные вводятся и выводятся в/из систему, тем проще ее сделать в реляционных сущностях.
Различные шедулеры и таск менеджеры в реляционных СУБД на раз расписываются, нужно лишь набитый навык, как функциональную схему и потоки данных переложить на ER-диаграмму.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Для выбора базы данных для проекта необходимо учитывать несколько ключевых факторов, таких как тип данных, объем информации, скорость доступа, требования к безопасности и масштабируемость. Ниже приведены некоторые популярные варианты баз данных, которые могут быть рассмотрены для вашего проекта:
1. Реляционные базы данных (SQL):
- MySQL: Легкая в установке и использовании, широко распространенная и поддерживаемая СУБД с хорошей производительностью.
- PostgreSQL: Мощная и расширяемая СУБД, поддерживающая множество расширений и функций.
- Microsoft SQL Server: Проприетарная СУБД с хорошей интеграцией с другими продуктами Microsoft.
2. NoSQL базы данных:
- MongoDB: Документо-ориентированная база данных, хранящая данные в формате JSON, что облегчает работу с неструктурированными данными.
- Cassandra: Распределенная СУБД, обеспечивающая высокую доступность и масштабируемость.
- Redis: Быстрая и масштабируемая СУБД, используемая для кэширования и обработки данных в реальном времени.
3. Графовые базы данных:
- Neo4j: Ориентированная на графы СУБД, обеспечивающая эффективное хранение и обработку связанных данных.
- ArangoDB: Многоцелевая СУБД, поддерживающая графовую, документную и ключ-значение модели данных.
Прежде чем принимать окончательное решение, важно провести анализ требований вашего проекта и определить, какие базы данных наилучшим образом соответствуют этим требованиям. Не забывайте также о возможности масштабирования проекта в будущем и о безопасности хранения данных.


Для выбора базы данных для вашего проекта, вам необходимо учитывать несколько факторов, таких как тип данных, объем информации, скорость доступа, тип запросов и масштабируемость.
1. Реляционные базы данных (SQL):
- MySQL: Это одна из самых популярных реляционных баз данных, которая обладает хорошей производительностью и надежностью. Она поддерживается многими хостинг-провайдерами и имеет большое сообщество разработчиков.
- PostgreSQL: Это мощная реляционная база данных с широкими возможностями и поддержкой множества типов данных. Она обладает высокой степенью надежности и безопасности.
- Microsoft SQL Server: Это коммерческая реляционная база данных от Microsoft, которая обладает множеством инструментов для управления данными и аналитики.
2. NoSQL базы данных:
- MongoDB: Это популярная NoSQL база данных, которая хранит данные в формате JSON. Она хорошо подходит для проектов, где данные имеют гибкую структуру и требуют быстрого доступа.
- Redis: Это ключ-значение хранилище данных, которое обеспечивает высокую скорость доступа к данным. Оно часто используется для кэширования данных и сеансов пользователей.
3. Графовые базы данных:
- Neo4j: Это графовая база данных, которая хранит данные в виде узлов и отношений между ними. Она хорошо подходит для проектов, где данные имеют сложные взаимосвязи.
4. Временные ряды:
- InfluxDB: Это база данных, специализированная на хранении временных рядов данных, таких как метрики и логи. Она обеспечивает высокую производительность при работе с временными данными.
Выбор базы данных зависит от специфики вашего проекта и требований к данным. Рекомендуется провести тщательный анализ каждой из перечисленных баз данных и выбрать ту, которая лучше всего соответствует вашим потребностям. Не забывайте также учитывать возможность масштабирования проекта в будущем.