Здравствуйте.
В объекте имеются переменные "начало" и "завершения" (даты), также необходимо чтобы у этого объекта были статусы:
- Активный (после создания)
- Открытый (ставится автоматически после достижения даты начала);
- Закрытый (ставится автоматически после достижения даты завершения);
- Завершенный (после установки данного статуса пользователем);
- Замороженный (после установки данного статуса пользователем);
В чём собственно вопрос. Как реализовать автоматическое изменение статуса в зависимости от даты?
Мои идеи:
- Статусы открытый и закрытый, как таковые не хранить в модели(следовательно и в базе), а просто высчитывать эти статусы для каждого объекта, путём сравнения попадает ли текущая дата на сервере в интервал начала и конца, если стоит 1 статус. И каждый раз уже пользователю показывать на странице список объектов со статусом.
Недостаток такого действия, что при большом количестве объектов и частых запросов придётся, всё это высчитывать с датами, хотя и не такое сложное действия, но всё же.
- Идея номер 2 состоит в том, чтобы в Cron ежедневно пробегать по всем объектам и изменять им статусы в зависимости наступил ли день начала или окончания срока действия для данного объекта. Плюсом является, то что статусы будут непосредственно хранится в самом объекте и это избавляет нас от лишних операций.
Прошу покритиковать мои решения. И с удовольствием посмотрю ваши )
Спасибо.