Sou um jovem desenvolvedor web de Marrocos, para resumir a história, estou trabalhando em um projeto especial de mídia social com o qual aprendi codificação, mas ele se desenvolveu em um projeto maior com o tempo. cheguei a um ponto em que quero criar ferramentas analíticas adequadas para minhas postagens
então esta é a postagem com o slide de classificação de estrelas que estou armazenando em um banco de dados sql com (user_id, post_id, estrelas), mas queria saber se preciso contar () toda vez que um usuário busca a postagem? ou existe um método mais eficiente para exibir post analytics porque li muito mas não encontrei solução para o meu caso e não tenho experiência corporativa para resolver soluções dessa escala. toda vez que solicito a postagem tenho que contar a soma das estrelas e o número de eleitores e depois faço (estrelas/eleitores) para obter a média e não sei se é uma boa ideia contar sempre que a postagem é solicitada, mas não tenho certeza de como fazer isso de outra maneira.
- tenho outro lugar onde preciso contar visualizações e também não sei como calculá-las de forma mais eficiente. estou aberto a todas as sugestões
Salve o resultado da contagem e da média. Em seguida, leia o valor salvo na maioria das visualizações de página.
Você pode armazenar o valor salvo em uma nova coluna da tabela de slides em seu banco de dados ou adicionar um serviço de cache ao seu sistema (algumas pessoas gostam de usar Memcached ou ValKey ).
Existe o risco de o valor médio guardado não ser atual. Por exemplo, se um novo voto for emitido, mas a média salva não for recalculada imediatamente. Este é um problema complicado.
Há uma velha piada da década de 1990 de Phil Karlton:
Ele quer dizer que é difícil detectar que um valor armazenado em cache é impreciso ou decidir por quanto tempo é muito longo para mantê-lo no cache.
As soluções incluem:
Escreva o código para atualizar os valores armazenados em cache quando uma votação for lançada. Isso aumenta a complexidade da votação, mas você tem a certeza de que o valor armazenado em cache é sempre preciso.
Use um cache que apague automaticamente os valores após um período fixo de tempo (digamos, 1 hora). Na próxima vez que um visualizador tentar ler o valor do cache, ele descobrirá que ele está faltando e precisará recalculá-lo. Portanto, não mais do que um espectador por hora arca com o custo do recálculo do valor. Também é possível que o visualizador visualize um valor impreciso que esteja desatualizado em até 1 hora.
Atualize os valores no cache como uma tarefa agendada, para que nenhum visualizador seja afetado por esse custo. Mas os visualizadores podem visualizar valores imprecisos até que os valores sejam atualizados.