Какую базу данных использовать для такого проекта?

Ссылка скопирована
2 ответов

В общем делаю проект
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
Дмитрий К. Ответ

Для выбора базы данных для вашего проекта, вам необходимо учитывать несколько факторов, таких как тип данных, объем информации, скорость доступа, тип запросов и масштабируемость.

1. Реляционные базы данных (SQL):
- MySQL: Это одна из самых популярных реляционных баз данных, которая обладает хорошей производительностью и надежностью. Она поддерживается многими хостинг-провайдерами и имеет большое сообщество разработчиков.
- PostgreSQL: Это мощная реляционная база данных с широкими возможностями и поддержкой множества типов данных. Она обладает высокой степенью надежности и безопасности.
- Microsoft SQL Server: Это коммерческая реляционная база данных от Microsoft, которая обладает множеством инструментов для управления данными и аналитики.

2. NoSQL базы данных:
- MongoDB: Это популярная NoSQL база данных, которая хранит данные в формате JSON. Она хорошо подходит для проектов, где данные имеют гибкую структуру и требуют быстрого доступа.
- Redis: Это ключ-значение хранилище данных, которое обеспечивает высокую скорость доступа к данным. Оно часто используется для кэширования данных и сеансов пользователей.

3. Графовые базы данных:
- Neo4j: Это графовая база данных, которая хранит данные в виде узлов и отношений между ними. Она хорошо подходит для проектов, где данные имеют сложные взаимосвязи.

4. Временные ряды:
- InfluxDB: Это база данных, специализированная на хранении временных рядов данных, таких как метрики и логи. Она обеспечивает высокую производительность при работе с временными данными.

Выбор базы данных зависит от специфики вашего проекта и требований к данным. Рекомендуется провести тщательный анализ каждой из перечисленных баз данных и выбрать ту, которая лучше всего соответствует вашим потребностям. Не забывайте также учитывать возможность масштабирования проекта в будущем.

Другие ответы (1) Ответить на вопрос
Мария Код

Для выбора базы данных для проекта необходимо учитывать несколько ключевых факторов, таких как тип данных, объем информации, скорость доступа, требования к безопасности и масштабируемость. Ниже приведены некоторые популярные варианты баз данных, которые могут быть рассмотрены для вашего проекта:

1. Реляционные базы данных (SQL):
- MySQL: Легкая в установке и использовании, широко распространенная и поддерживаемая СУБД с хорошей производительностью.
- PostgreSQL: Мощная и расширяемая СУБД, поддерживающая множество расширений и функций.
- Microsoft SQL Server: Проприетарная СУБД с хорошей интеграцией с другими продуктами Microsoft.

2. NoSQL базы данных:
- MongoDB: Документо-ориентированная база данных, хранящая данные в формате JSON, что облегчает работу с неструктурированными данными.
- Cassandra: Распределенная СУБД, обеспечивающая высокую доступность и масштабируемость.
- Redis: Быстрая и масштабируемая СУБД, используемая для кэширования и обработки данных в реальном времени.

3. Графовые базы данных:
- Neo4j: Ориентированная на графы СУБД, обеспечивающая эффективное хранение и обработку связанных данных.
- ArangoDB: Многоцелевая СУБД, поддерживающая графовую, документную и ключ-значение модели данных.

Прежде чем принимать окончательное решение, важно провести анализ требований вашего проекта и определить, какие базы данных наилучшим образом соответствуют этим требованиям. Не забывайте также о возможности масштабирования проекта в будущем и о безопасности хранения данных.

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно