Отличный ответ и интересная история для разработчиков, спасибо Фрэнк!

аюсь обдумать, как структурировать мои данные для базы данных реального времени Firebase. Я прочиталдокументы и некоторые другие вопросы о том, как найти следующие советы:

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

Имея это в виду, позвольте мне описать мой конкретный вариант использования. Фрист естьпользователь со следующими атрибутами:

ИмяФамилияКартинка профиля (большая)Картинка профиля (маленькая)

Пользователь может создать историю, которая состоит из следующих атрибутов:

пользовательТекстОтметка

Визуальное представление истории может выглядеть так:

Мой вопрос: как бы вы связали информацию о пользователе (имя, фамилия, маленькая картинка профиля) с историей?

О чем я думал:

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

{user_id: 'XYZ', текст: 'foobar', отметка времени: ...}

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

{user_id: 'XYZ', имя: 'sandra', фамилия: 'adams', smallProfilePicutre: '...', текст: 'foobar', метка времени: ...}

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

Я хотел бы здесь ваши мысли и идеи по этому поводу.

Ответы на вопрос(1)

Ваш ответ на вопрос