Проще всего описать мою проблему с помощью рабочего примера: даже если вы не вошли в систему, YouTube запоминает то, что вы смотрели, и в следующий раз дает вам рекомендации на основе предыдущих просмотренных фильмов.
Мой сайт в чем-то похож: пользователи могут голосовать за статьи без входа в систему, а сайт запоминает голоса с помощью файлов cookie.Я выяснил способ работы, но должен быть более простой способ - также теперь использование БД совсем не оптимизировано.
Для каждого посетителя есть проверка, есть ли у него куки.Если да, я запрашиваю его голоса.Если нет, я создаю фиктивного пользователя и отправляю ему файлы cookie.Теперь я храню отметку времени этого пользователя "last_visit".После этого все одинаково для обоих пользователей.Моя проблема в том, что моя БД заполняется фиктивными пользователями, поэтому у меня истек срок действия файлов cookie через 3 месяца, и мой сайт регулярно проверяет, какие пользователи не посещали мой сайт в последние 3 месяца, и удаляет их из БД.
Я знаю, что это слишком усложнило, но моя система голосования использует AJAX, и я не смог найти метод для отправки куки (и создания фиктивного пользователя), только если происходит голосование, а не каждый раз, когда простой посетительпросматривает мой сайт - без голосования.
Также примечание: я настаиваю на использовании куки - я знаю, что было бы легче хранить IP-адреса, когда происходит голосование, но есть школы, предприятия, использующие тот же IP,и я хотел бы позволить своим пользователям использовать мой сайт.
Что я здесь упустил?Как это можно оптимизировать?