Ответ зависит от ряда вещей, таких как количество потоков, количество просмотров, какое у вас оборудование, типичная загрузка, соотношение чтения / записи, требуемая точность и т. Д. И т. Д.
Разумным ответом на ваш вопрос, не зная деталей вашего конкретного сценария, является создание описываемой вами таблицы:
thread_views(
thread_id references thread(thread_id)
,user_id references user(user_id)
,timestamp
,primary key(thread_id, user_id)
)
Приведенный выше подход дает вам гибкость и достаточно хорошую производительность для типичного сценария.
Недавно я ответил на два похожих вопроса, на которые вы можете взглянуть, чтобы получить некоторые идеи.
Количество комментариев к статье и Количество посещений посетителей в день
И наконец, многие из основных баз данных содержат инструменты для агрегирования данных.Эти инструменты позволяют вам иметь нормализованную модель данных, в то же время получая большинство преимуществ благодаря предварительно вычисленной таблице статистики.