![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
ruX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 8.9.2006 Где: г.Гатчина Репутация: 1 Всего: 3 |
Всем доброго времени суток.
Мне нужно вести счёт(баллов/поинтов) пользователя. Этот счёт несколько похож на карму - за исключением, что списываются и добавляются баллы системой за различные действия(просмотр, коммент, заход на сайт). Практически, как это сделанно в ВиО. Там:
думаю идея ясна. Я думаю завести таблицу(user_id, action_id, points, timestamp) в которую записывать изменение счёта в размере points для юзера user_id, которое произошло в timestamp и причина изменения баллов - action_id. В свою очередь создать таблицу(action_id, describe) в которой номер действия action_id связан с его описанием describe. Также хранить в таблице пользователя текущий счёт, ну это понятно, не пересчитывать же. Предполагается очень много действий пользователя(практически любое открытие страницы вызывает изменение баллов). Узнать текущий счёт будет не проблемма - он лежит в отдельной таблице. А просмотр действий? Идеально - это join'ить 2 таблицы по полю action_id и получается лог действий. Ещё, стоимость одного из действий может меняться. Т.е. (например) сохранил, что человек просмотрел 2 фото, спустя день он вернулся к альбому и продолжил просматривать его, за что ещё баллы начисляются(а вернее надо добавить к тому что записал в бд!) Оптимально? Или стоит ежедневно/недельно/месячно "консервировать" текущую таблицу действий? Или причину изменения баллов вынести в файл например? Может какие-нибудь глобальные изменения в идее есть? --------------------
Случайность - внезапно наступившая неизбежность. |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
почему points в этой таблице, а не в таблице actions? как это стоимость действий должна меняться? Вместо добавления новой записи ты собираешься существующую изменять? |
|||
|
||||
ruX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 8.9.2006 Где: г.Гатчина Репутация: 1 Всего: 3 |
Да, пропустил. Количество начисляемых баллов может меняться в зависимости от пожелания модераторов, а поскольку нужно хранить весь лог - это создаст проблемму. Тем более как я написал выше можно сделать несколько однотипных действий(просмотр одного альбома) - за это начислиться баллов - количество просмотров * стоимость просмотра.
Думаю да, а не стоит? Пусть юзер просматривает всего лишь 1 альбом - 500фото. тогда нужно записывать 500 строк в таблицу! --------------------
Случайность - внезапно наступившая неизбежность. |
|||
|
||||
Hellka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 2.2.2006 Репутация: нет Всего: нет |
а зачем такой геморрой? не думаешь, что юзеры накручивать будут? делай всё четко и сурово. зашел в альбом +1, зашел еще раз - фиг, т.к. уже смотрел его. по своему опыту знаю, что изголяться начнут |
|||
|
||||
ruX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 8.9.2006 Где: г.Гатчина Репутация: 1 Всего: 3 |
Это ТЗ а не геморрой ) Об этом я также не должен думать
Да, просмотренные фото при повторном просмотре конечно не будут "тарифицироваться". А вообще здесь "фото" и "альбомы" это абстрактно - по факту может быть много чего. --------------------
Случайность - внезапно наступившая неизбежность. |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
а где будут храниться текущие points?
|
|||
|
||||
Hellka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 2.2.2006 Репутация: нет Всего: нет |
||||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
я про points, которые модераторы назначают и которые меняются
|
|||
|
||||
Hellka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 2.2.2006 Репутация: нет Всего: нет |
да это можно и в файле конфига, и в таблице и в массиве хранить |
|||
|
||||
ruX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 8.9.2006 Где: г.Гатчина Репутация: 1 Всего: 3 |
Один из вопросов моих, где лучше хранить, я же подумал что хорошо бы:
Вторая мысль была как раз такая же - хранить в сериализированном массиве, где есть соответствия (ид_действия->поинты,описание) Сейчас подумал ещё над тем, что возможно лучше не менять количество баллов за действие, а создавать копию действия, соответственно с другим айди, таким же описанием и другим кол-вом количеством баллов. --------------------
Случайность - внезапно наступившая неизбежность. |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
это нужно, если у тебя будут запросы типа "а какие баллы назначались пользователям, когда действие ... было в ... баллов" ;)
храни в actions надо будет только рассказать модератором, в каком каталоге файлик этот лежит... |
|||
|
||||
ruX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 8.9.2006 Где: г.Гатчина Репутация: 1 Всего: 3 |
youri, Hellka, спасибо за ответы
решил как и посоветовали хранить actions в бд и тема закрыта ) --------------------
Случайность - внезапно наступившая неизбежность. |
|||
|
||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
на всякий случай, повторюсь: текущие points лучше хранить в actions и не создавать новую запись при изменении points. Тебе вряд ли эта дополнительная информация понадобиться. Создавать новую запись имеет смысл, если нужно будет выдавать историю изменения points для action'а или выдавать историю назначения пользователям points для некотрого action'а, когда у него было некоторое значение points
Это сообщение отредактировал(а) youri - 16.10.2009, 18:01 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |