Автоматическое обновление записи в базе, после определенного момента времени.

Bone

Новичок
Автоматическое обновление записи в базе, после определенного момента времени.

Здравствуйте!
Суть задачи вот в чем:
Есть таблица с конкурсами, у каждого конкурса есть поля start_time и finish_time, а так же поле finished. Поля start_time и finish_time заполняются в момент начала конкурса, а в поле finished ставится 0. Каждый конкурс длится, допустим, 72 часа. Вопрос в том, как лучше всего сделать, чтобы конкурс автоматически переводился в разряд завершенных (finished меняется на 1) после наступления finish_time? Как, вообще, можно оперативно определять, что у какого-то конкурса в базе данных истекло время?
 

Bone

Новичок
Но я так понимаю, вызывать его постоянно, это не очень эффективно или ничего страшного? Если допустим в таблице 50 000 записей и я буду каждые пять минут запускать cron, чтобы проверять и обновлять записи у которых finish_time<time() это сильно повысит нагрузку?
 

Фанат

oncle terrible
Команда форума
конкурс и так переведется в разряд завершенных, безо всякого поля finished.
это все пережиток тетрадок в линеечку и непонимание баз данных
 

dimagolov

Новичок
Bone, у тебя два поля finish_time и finished отражают одно и то-же, завершение конкурса, а такого быть не должно.
PHP:
finished = IF(finish_time < NOW(), 1, 0)
убери нахрен finished и проверяй finish_time < NOW() вместо него.
 

Bone

Новичок
Да, действительно я намудрил на ровном месте. Спасибо, теперь всё на самом деле гораздо проще, чем мне представлялось :)
 
Сверху