Russian Qt Forum

Qt => Базы данных => Тема начата: blood_shadow от Сентябрь 04, 2011, 07:23



Название: Формирование рейтинга
Отправлено: blood_shadow от Сентябрь 04, 2011, 07:23
Добрый день,
есть БД в которой есть разные таблицы с марками автомобилей, и есть программа через которую осуществляется
доступ к таким таблицам, у каждого автомобиля есть свой `rating` просмотра, этот рейтинг формируется с количества
просмотров через эту программу, необходимо каждые 15 минут обнулять рейтинг

Вопрос:
1. можно ли как-то "сказать" таблице инкрементировать значение ячейки `rating`?
2. как поставить таймер в БД который будет обнулять `rating` каждые 15 минут


Название: Re: Формирование рейтинга
Отправлено: maint от Сентябрь 04, 2011, 07:31
если просмотрщик свой с исходниками, то вставить туда событие. Если нет, то сторонней программой в 5 строчек


Название: Re: Формирование рейтинга
Отправлено: blood_shadow от Сентябрь 04, 2011, 08:22
если просмотрщик свой с исходниками, то вставить туда событие. Если нет, то сторонней программой в 5 строчек
да просмотрщик свой, проблема только в том что екземпляров этой программы может быть много, и в один
момент времени несколько таких экземпляров может посмотреть карточку одного автомобиля, то есть обновить
устаревшее значение (операция не атомарна)

если с БД нельзя так сделать как я говорил, что там насчет сторонней программы?


Название: Re: Формирование рейтинга
Отправлено: Рома от Сентябрь 04, 2011, 11:15
ИМХО: Думаю maint имел ввиду, что нужно создать отдельную программку, которая каждые 15 минут будет очищать rating. Она не должна иметь никакого отношения к просмотрщику, а быть привязаной только к БД.
А по поводу первого вопроса, думаю будет неплохо, если вы по-подробнее раскажете про саму БД.


Название: Re: Формирование рейтинга
Отправлено: LisandreL от Сентябрь 04, 2011, 11:23
Я бы создал отдельную таблицу, куда писал записи вида (id_машины, время_просмотра) с индексами по полям.
Рейтинг получал бы как count записей, где id_машины = id_этой машины и время_просмотра >= сейчас - 15 минут.
Ну и время от времени вызывать удалить, если время_просмотра < сейчас - 15 минут, чтобы слишком не разрасталось таблица.


Название: Re: Формирование рейтинга
Отправлено: Whiplash от Сентябрь 05, 2011, 09:50
Вообще, довольно много от СУБД зависит, которая используется. Если есть возможность, то можно создать селективную процедуру на выбор параметров автомобиля, и в этой процедуре инкрементировал бы соответствующий рейтинг.