Нужно вести учет уникальных посетителей неких сущностей за период.
Посетители могут быть зарегистрированными юзерами и гостями.
Думаю сделать так.
Таблица
id
ip
user_id
visitable_id
visitable_type
даты
Когда посещает, проверяем авторизован или нет.
Если авторизован:
Проверяем есть ли такой юзер в таблице посещений для указанной сущности
Если есть - возвращаем false.
Если нет - пишем юзер ид для связи с юзером, инкрементим unique_views у сущности.
Если не авторизован, проверяем ip адрес посетителя указанной сущности
Если есть - возвращаем false
Если нет - пишем в бд, инкрементим unique_views у сущности.
Кроном очищать данные старше одного месяца.
Погрешности типа возможного одинакового ip адреса у юзеров не существенны.
В итоге нужно по всем статьям/другим сущностям пользователя показать таблицу посетителей, где будут отображаться связанные данные посетителей. Делать к данным запросы, фильтрацию, сортировки и т.д.
Поделитесь опытом кто такое делал, правильна ли такая логика и т.д.
Sanes, тогда не понял подробнее? мне нужно по всем статьям пользователя показать таблицу посетителей, где будут отображаться связанные данные посетителей. Делать к данным запросы, фильтрацию, сортировки и т.д.