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

questionAnswers(6)

yourAnswerToTheQuestion