Como desnormalizar / normalizar a estrutura de dados do banco de dados em tempo real do firebase?

Estou tentando entender como estruturar meus dados para o banco de dados em tempo real do firebase. Eu li odocs e algumas outras perguntas sobre como encontrar os seguintes conselhos:

os dados devem ser o mais planos possíveisser caro em gravações para ter leituras baratasEvite aninhar dadosduplicação de dados pode estar bem

Tendo isso em mente, deixe-me descrever meu caso de uso específico. Primeiro, hádo utilizador com os seguintes atributos:

Primeiro nomeÚltimo nomeFoto do perfil (grande)Foto do perfil (pequena)

Um usuário pode criar uma história, que consiste nos seguintes atributos:

Do utilizadorTextoRegistro de data e hora

A representação visual de uma história pode ser assim:

Minha pergunta é: como você associaria as informações do usuário (nome, sobrenome, foto pequena do perfil) a uma história?

O que eu pensei sobre:

coloque um user_id na história que contém o ID estrangeiro para o usuário específico. Para carregar a história, teríamos que fazer duas solicitações ao banco de dados, uma para obter a história e outra para o usuário.

{user_id: 'XYZ', texto: 'foobar', registro de data e hora: ...}

coloque nome, sobrenome e pequena imagem de perfil na história. Apenas uma solicitação seria necessária para exibir a história. Mas teríamos que atualizar a história de cada usuário, quando por exemplo a imagem do perfil muda.

{user_id: 'XYZ', nome: 'sandra', sobrenome: 'adams', smallProfilePicutre: '...', texto: 'foobar', registro de data e hora: ...}

Portanto, quando há poucas histórias criadas e na maioria das vezes há apenas leituras, a abordagem 1. seria cara, porque pagamos duas leituras para exibir uma história. A abordagem 2. seria mais econômica.

Gostaria de aqui seus pensamentos e idéias sobre isso.

questionAnswers(1)

yourAnswerToTheQuestion