Отслеживание пользовательских привычек и действий? - Джанго
Вопрос
Я работал над проектом несколько месяцев назад, и мне было необходимо внедрить система награждения. Анкет Похоже на S.Система значков на вершине. Значки
Я мог бы не реализовать это наилучшим образом, и мне любопытно, что вы говорите в этом.
Каким будет хороший способ отслеживать занятия пользователями, необходимые для награждения значков?
Система Stackoverflow должна знать о большом количестве информации, и у меня также сложилось впечатление, что будет много обработки данных, усложняющих вещи.
Я бы предположил, что таким образом вычисляет значки один или два раза каждые 24, и что, возможно, хранится журналы или сервер, посвященный расчету значков.
Мысли?
Решение
Я не думаю, что это так сложно, как вы думаете. Я очень сомневаюсь, что так вычисляет значки с каким -то журналом активности пользователей (хотя технически вся база данных является журналом активности пользователя). Когда я смотрю на списки значков, я не вижу ничего, что не может быть реализовано с помощью запроса SQL Select.
Некоторые из запросов могут быть довольно сложными, и может быть какой -то необычный механизм кэширования, но я не вижу причин, по которой вам придется рассчитать значки в партиях.
Другие советы
В общем значке/точечных системах могут основываться на двух вещах.
Журнал активности интересных событий, это фактически получение бумажного регистрации о том, что случилось так, что вы можете переписать с нуля, если это когда-либо необходимо. Может быть таким же простым, как (user_id, timestamp, event_id, event_detail)
Большую часть времени вы предварительно разработали свою систему счетов/точек, чтобы вы точно знали, какие счетчики сохранять пользователя. Теперь это так же просто, как иметь большую запись, которая содержит все детали. (user_id, reply_points, login_points, last_login, thumbs_up_points и т. Д. и т. Д.)
Теперь вы можете пощепать несколько простых методов на этом объекте модели и иметь его управление/хранить точки по мере необходимости.