@Mark321

Как спроектировать приложение? Или как лучше хранить данные?

Добрый день, очень нужна ваша помощь.

Вопрос о том, как хранить данные более правильно. И как это делается в реальных приложениях.

Я так понимаю, что картинки и данные хранятся всегда в разных бд, правильно?

На моём примере картинки хранятся в Firebase storage, все остальные данные в Firestore

Мои картинки имеют количество лайков. И тут я вот немного не понимаю как это реализовывать

При загрузке картинки в Firebase storage, когда я получаю от бд ОК, что картинка загружена я сразу создаю в Firestore некий объект, айди которого равен айди картинки (уникальные, одинаковые и присваиваю поле like)

Вот так

База данных с картинками
image: uniqueImage1

База данных с информацией
{
  name:uniqueImage1
  src: http//image1 (url до картинки в бд)
  like: 0
}

И затем, когда я уже запрашиваю картинки, то я получаю, только готовые объекты из общей бд, а картинки не трогаю

Такой подход верный?

6427c51f98437468824791.png
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Картинки, документы, архивы и прочие файлы хранятся как обычные файлы в файловой системе. В базе данных хранится путь к ним.
Если файлов много и возможно совпадение названий, то файлы переименовывают по какой-либо единой схеме (например, GUID).
Ответ написан
Комментировать
@foterio
Обычно лайки храняться в отдельной таблице в базе данных аля likes
и каждый лайк выглядит вот так
{
  // Кто поставил лайк
  user_id: 123,
  // Какому изображению поставили лайк
  image_id: 456,
  // Когда поставили лайк, время в любом удобном для вас формате, (опционально)
  created_at: '2023-05-24 11:53'
}

И затем вы идете в likes и запрашиваете лайки для нужного вам изображения
SELECT user_id, image_id, created_at FROM likes WHERE image_id = 456
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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