Консультация по использованию 2 баз данных с Laravel

#mysql #laravel #cassandra #nosql #amazon-dynamodb

#mysql #laravel #кассандра #nosql #amazon-dynamodb

Вопрос:

Я хочу проконсультироваться с вами

Если у меня есть встроенный проект Laravel и я хочу добавить функцию обмена сообщениями, которая будет иметь большой трафик, я подумал, что использование базы данных NoSQL с базой данных MySQL может быть лучше для базы данных MySQL во многих отношениях, например:

  1. Освобождение хранилища (поскольку данные, которые будут храниться в MySQL, — это только сообщение пользователя)
  2. Уменьшение трафика в базе данных MySQL

Так я прав?

Это лучшая практика?

И если да, то какую службу БД вы рекомендуете?

Я провел поиск по этому вопросу (DynamoDB, Firebase, Cassandra), прочитал об их плюсах и минусах и хочу воспользоваться советом 😊

Заранее спасибо

Комментарии:

1. Ваш вопрос не совсем ясен. Какие сообщения вы пытаетесь реализовать? Речь идет о рассылке или просто уведомлениях? Зачем вам нужна БД для участия в обмене сообщениями? Для уведомлений приложений у вас есть широковещательная трансляция и Laravel echo. Для массовой рассылки вам, вероятно, понадобится сторонний API. Для push-уведомлений существует множество сервисов, таких как Firebase. Но опять же, ваша цель совсем не ясна

2. Моя цель — сохранить сообщения для резервного копирования истории

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

4. На первый взгляд, я бы сказал вам «использовать одну и ту же БД» из-за целостности БД и производительности запросов. Предполагая, что ваша таблица сообщений имеет FK для владельца, и вам нужно получить все сообщения от определенного пользователя, вам нужно будет получить таблицу пользователей из базы данных A и объединить сообщения из базы данных B. Что делать, если вы удалите пользователя из DB A? Все ваши сообщения из DB B станут сиротами. Я думаю, что это зависит в основном от вашей бизнес-логики, но некоторые пакеты, такие как spatie / laravel-activitylog, отслеживают всю активность, что подразумевает миллионы записей, в одной и той же БД без каких-либо проблем.