La réponse dépend d'un certain nombre de choses, telles que le nombre de threads, le nombre de vues, le matériel dont vous avez la charge typique, le rapport lecture/écriture, la précision requise, etc., etc.
Une resonable réponse à votre question sans connaître les détails de votre scénario spécifique est de créer la table que vous décrivez:
thread_views(
thread_id references thread(thread_id)
,user_id references user(user_id)
,timestamp
,primary key(thread_id, user_id)
)
l'approche ci-dessus vous donne la flexibilité et les performances assez bon pour le scénario typique.
J'ai récemment répondu à deux questions similaires que vous pouvez consulter pour avoir des idées.
Count article comments et Count visitor hits per day
Un dernier point est que bon nombre des principales bases de données comprend des outils pour l'agrégation des données. Ces outils vous permettent d'avoir un modèle de données normalisé tout en bénéficiant de la plupart des avantages avec une table de statistiques précalculée.