Задавайте вопросы, мы ответим
Вы не зашли.
Еще вопрос - есть БД которая содержит несколько таблиц, в каждой таблице представлены
разные классы автомобилей, просмотр осуществляется с помощью программы, от количества просмотров
через эту программу (допустим в течении 15 минут) для автомобиля формируется рейтинг
Как такое реализовать?
Спасибо
Неактивен
Если можете влиять на код программы — пусть она просто складывает куда-то
статистику просмотров. Если нет — прийдется придумывать какой-то хитрый
способ (обработка журналов, использование проксирования для подсчета, еще
что-то). Триггер на SELECT повесить, к сожалению, нельзя.
Неактивен
paulus написал:
Если можете влиять на код программы — пусть она просто складывает куда-то
статистику просмотров. Если нет — прийдется придумывать какой-то хитрый
способ (обработка журналов, использование проксирования для подсчета, еще
что-то). Триггер на SELECT повесить, к сожалению, нельзя.
я немного придумал как, короче заведу отдельную колонку `rating` каждый раз когда буду делать
SELECT , буду добавлять единицу, не знаю как только такое реализовать:
1. можно ли как-то прицепить таймер к колонке этой таблицы, который будет обнулять ее каждые 15 мин.?
2. нет ли какого-то счетчика доступа к ячейке, то есть если получил доступ с помощью SELECT к конкретной
ячейке счетчик прибавил единицу к представлении ячейки, или такое реализуется с помощью UPDATE?
Неактивен
Таймер можно сделать внешним, но тогда у Вас раз в 15 минут информация будет
резко становиться неверной?
Счетчика доступа нет, нужно придумывать какое-то независимое решение.
Неактивен
paulus написал:
Таймер можно сделать внешним, но тогда у Вас раз в 15 минут информация будет
резко становиться неверной?
Счетчика доступа нет, нужно придумывать какое-то независимое решение.
Проблема в том что экземпляров такой программы может быть много (пользователей), мне надо оставлять статистику
посещение карточки конкретного автомобиля, и если в течении 15 мин никто не просматривал данную карточку
автомобиля необходимо архивировать эту карточку, то есть в программе данного автомобиля не будет
видно, но в базе все же он еще будет присутствовать.
Давайте разберем по кусочкам остановимся на формировании самого рейтинга:
допустим у меня есть колонка `rating` могу ли я сказать БД (с программы) чтобы она инкрементировала значение в
этой колонке (ф-ция и т.д)?
Неактивен
Вы не можете делать триггеры на SELECT. Поэтому это будет какое-то внешнее
по отношению к базе решение.
Неактивен
paulus написал:
Вы не можете делать триггеры на SELECT. Поэтому это будет какое-то внешнее
по отношению к базе решение.
наверно неправильно выражаюсь, я не про триггеры говорю, вот как можно сделать:
Посылаю запрос SELECT из него получаю значение `rating`, далее посылаю UPDATE со значением (rating + 1)
это будет работать, но до тех пор пока несколько программ одновременно запросят SELECT и сделают
UPDATE с не обновленным значением, мне нужно послать такой UPDATE чтобы БД сама добавила (rating + 1),
так можно сделать? либо это будет не UPDATE, а вызов какой-то ф-ции
Неактивен
Если Вы можете менять приложение — всё куда проще
UPDATE tablename SET rating = rating + 1 WHERE ...
Выбирать это значение совершенно не нужно.
Неактивен
paulus написал:
Если Вы можете менять приложение — всё куда проще
UPDATE tablename SET rating = rating + 1 WHERE ...
Выбирать это значение совершенно не нужно.
Спасибо, с этим разобрались, а как прицепить таймер к БД? чтобы обнулял конкретный столбец всех таблиц каждые 15 мин?
Неактивен