Цитата(Arc_SilveR @ 26.3.2008, 17:31) [snapback]35683[/snapback]
Цитата
И еще... Я так понял, что ты не используешь встроенные в БД функции?
Что за встроенные функции? Нет, не использую. Где про это прочитать можно и какая от них польза? Это что то вроде функций в PHP? Я создаю функцию, а она потом работает, так что ли?
Ищи в хэлпе (или в и-нете) по словам Stored Routines, Stored Procedures, Stored Functions, Triggers. Это программы, функции, триггеры, которые работаютс с БД вне зависимости от того, через какую программу ты обращаешься к БД. Нормальная БД поддерживается серверной программой, которая как раз и работает с этими объектами.
Например, твой скрипт может поддерживать целостность
данных. Но другой скрипт или программа, обратившись к той же БД, могут эту целостность нарушить. Но: при использовании хранимых (встроенных) процедур эта проблема исчезает. Потому что вне зависимости от того, откуда приходит запрос сделать то-то и то-то, будут выполнены определенные дополнительные действия.
Также, вместо организации сложного запроса (на много связанных таблиц) можно эту задачу переложить на встроенные процедуры. Ты один раз ее отлаживаешь, а потом запрашиваешь данные как через простой запрос. И тогда из разных частей одного скрипта или из разных скриптов ты можешь вызывать эти данные и быть уверенным, что полученные данные достоверны. А второй раз ты потратишь на организацию запроса очень мало времени.
Цитата(Arc_SilveR @ 26.3.2008, 17:31) [snapback]35683[/snapback]
Цитата
Формирование списка "ТОП 10"
Может это и не имеет значения, но на всякий случай скажу, что у меня не топ 10, а полноценный топ многостраничный по всем картинкам.
Говоря "ТОП 10" я условно имел ввиду

Цитата(Arc_SilveR @ 26.3.2008, 17:31) [snapback]35683[/snapback]
Чем отличается это от того, чтобы создать поле в записях картинок `loads_today` и обнулять его просто каждый день? Этот вариант не подходит опять же из за столь редкого обновления.
Да, можно и такое поле создать.
И я не понял - где тут редкое обновление? Я же говорил о том, что эти записи обновляются при каждом обращении к определенной картинке.
Отличие от твоего первоначального варианта в том, что при обращении не делается уникальная запись, а обновляется существующая (если она уже была создана). НО!!! Я говорил про проверку того, что какой-то юзер уже "втыкал" в эту картинку. В этом случае также вовсе не обязательно делать запись в БД, а можно только обновить запись для данного юзера и для данной картинки (во второй таблице).
А насчет алгоритма... Да, описанный тобой алгоритм будет работать. Только я не до конца понял логику. Ну хорошо, ты видишь сумму обновлений каждый час. Но в начале каждого часа все равно происходит обнуление
данных!!!
Да и вообще, тогда уж лучше создать 24 записи, с полями "дата", "час", "количество". И тогда вопросы суммирования за день решаются легко и просто. Но чем это принципиально отличается от того, что говорил я

? Только уменьшением интервала до одного часа? Но только все равно в начале каждого часа будет неопределенность, т.к. на первое место будут выходить картинки, которые первыми посмотрели. Можно, конечно, в течение некоторого времени (например, минут 15) с начала часа текущего показывать статистику часа предыдущего, пока копятся данные.
И еще... Я бы, мне кажется, ограничил этот ТОП одной страничкой или каким-то разумным количеством. Какая разница, какая картинка находится например, на сотом или 150-м месте? Более интересно, какие картинки возглавляют список популярных.