anipulação de postagens não lidas em PHP / MySQL
Para um projeto pessoal, preciso criar um fórum usando PHP e MySQL. Não é possível usar um pacote de fórum já construído (como phpBB).
Atualmente, estou trabalhando na lógica necessária para criar um aplicativo como esse, mas já faz um longo dia e estou tendo dificuldades com o conceito de lidar com postagens não lidas para os usuários. Uma solução que tive foi ter uma tabela separada, que contém essencialmente todos os IDs de postagem e de usuário, para determinar se eles foram lidos:
tbl_userReadPosts: user_id, post_id, read_timestamp
Obviamente, se o ID de um usuário aparecer nesta tabela, sabemos que ele leu a postagem. Isso é ótimo, exceto se tivermos milhares de postagens por dia (o que é mais do que possível no sistema proposto) e milhares de usuários. Essa tabela se tornaria enorme em questão de dias, se não hora
Outra opção seria rastrear a última atividade do usuário como um carimbo de data e hora e recuperar todas as postagens feitas depois que a última atividade foi atualizada. Isso funciona em teoria, mas digamos que um usuário esteja escrevendo uma postagem extremamente longa e, enquanto isso, vários membros também iniciam novos tópicos ou respondem a postagens em outros tópicos. Quando o usuário envia sua nova postagem, sua última atividade é atualizada e, portanto, não corresponde às feitas nesse meio tempo.
Alguém tem experiência com isso e como você o enfrentou?
Fiz o check-in do phpBB e parece que o sistema atribui uma sessão personalizada a cada usuário e funciona com base nisso, mas a documentação é bastante esparsa sobre como isso lida com postagens não lida
ensamentos e opiniões recebidos com gratidão, como sempr