Мне нужно сохранить список user_id
с, которые просмотрели часть контента, чтобы вычислить уникальные пользовательские просмотры. user_id
- это поле INT(10)
.
Я мог бы создать таблицу с user_id
, content_id
и viewed
и добавлять строки каждый раз, когда пользователь просматривает контент, но это кажется медленным. Для каждого фрагмента контента, который просматривает пользователь, мне придется запросить что-то вроде
SELECT COUNT(*) FROM viewed_table WHERE content_id = $content_id;
, чтобы получить количество просмотров, а затем
SELECT COUNT(*) FROM viewed_table WHERE user_id = $user_id AND content_id = $content_id;
, чтобы увидеть, просматривал ли пользователь этот контент, а затем вставить строку, если нет. (2 или 3 дополнительных запроса каждый раз, когда пользователь смотрит на что-то).
ИЛИ ...
Должен ли я добавить поле viewed
в мою таблицу содержимого и unserialize()
/ serialize()
массив каждый раз, когда добавляю user_id
? json_encode()
- еще одна похожая опция, которая кажется более быстрой для больших наборов данных.
Какой вариант является самым быстрым / масштабируемым для растущего сайта? Спасибо за вашу помощь!