- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Для одного клиента паршу информацию раз в минуту и строю табличку, которая автообновляется. Теперь ему захотелось иметь статистику за последние 10 мин. Суть таблички - какая то игра - место, ник, баллы, деньги.
Так вот, вопрос - как правильнее хранить эту инфу? Имя игрока уникально. Хранить нужно баллы - парсятся они раз в минуту. Клиент хочет видеть как изменились баллы за последние 10 мин.
Как бы вы это реализовали?
выводим баллы в отдельную таблицу, id user|point|date
и добавляем туда данные.
Для одного клиента паршу информацию раз в минуту и строю табличку, которая автообновляется. Теперь ему захотелось иметь статистику за последние 10 мин. Суть таблички - какая то игра - место, ник, баллы, деньги.
Так вот, вопрос - как правильнее хранить эту инфу? Имя игрока уникально. Хранить нужно баллы - парсятся они раз в минуту. Клиент хочет видеть как изменились баллы за последние 10 мин.
Как бы вы это реализовали?
да, можно писать полные логи в отдельную таблицу исходя из того, что "когда-нибудь клиент захочет их посмотреть и/или использовать", но это думание за клиента и забегание вперед.
ТОже склоняюсь к тому как Леня предложил. Сделать отдельную таблицу и там
id / ник / время / баллы/
В момент записи проверяем сколько всего записей по данному нику и если более 13 - удаляем тот из них, который с наименьшим ID и добавляем новую запись. Так таблица не будет расти и под рукой всегда будут данные за последние 10 мин.
ТОже склоняюсь к тому как Леня предложил. Сделать отдельную таблицу и там
id / ник / время / баллы/
В момент записи проверяем сколько всего записей по данному нику и если более 13 - удаляем тот из них, который с наименьшим ID и добавляем новую запись. Так таблица не будет расти и под рукой всегда будут данные за последние 10 мин.
Я бы ещё всё это в Redis пихнул вместо базы.
Ключ - имя игрока, значение - массив с прогрессом.
И ttl - 600 секунд. Если нет изменений, то запись будет самовыпиливаться по прошествии ttl.
Работать будет многократно быстрее любой базы. Особенно если игроков очень много.
Если игроков очень-очень много, то лучше поднять отдельный инстанс редиса с отключённым бэкапом.
id / ник / время / баллы/
id / user_id / время / баллы/
В момент записи проверяем сколько всего записей по данному нику и если более 13 - удаляем тот из них, который с наименьшим ID
Или удаляем все записи старше определённого времени. В зависимости от задач и алгоритмов.