Как обращаться с просроченными предметами? - PullRequest
2 голосов
/ 17 июня 2010

Мой сайт позволяет пользователям размещать вещи на сайте с датой истечения срока действия. После истечения срока действия элемента он больше не будет отображаться в списках. Сообщения также могут быть закрыты, отменены или завершены. Я думаю, что было бы лучше всего иметь возможность проверить один атрибут или статус («активен») вместо необходимости проверять [не истек, не завершен, не закрыт, не отменен]. Обработка остальных из них проста, потому что у меня может быть только одно поле «status», которое по сути является enum, но AFAIK, невозможно установить статус «expired», как только наступит это время. Как люди обычно справляются с этим?

Редактировать: Я не спрашиваю, как написать запрос для поиска просроченных элементов; Я спрашиваю, как я могу найти «активные» (не истекшие элементы, которые соответствуют нескольким другим логическим условиям) без необходимости использовать большой неприятный запрос каждый раз, когда я хочу их найти.

Ответы [ 3 ]

1 голос
/ 17 июня 2010

Я думаю, что этим можно управлять с помощью cronjob и пользовательская команда управления django , это просто идея.

1 голос
/ 17 июня 2010

У элемента должны быть столбцы birth и death (тип: дата) и столбец status (заполнено, удалено, срок действия которого истекает ...).

Обновите / заполните death, если вы хотите логически завершить жизненный цикл элемента (по любой причине: истек, завершен, ...).Обновите столбец status соответствующим образом.

Запрос активных элементов (в псевдо-SQL):

select * from mytable where birth <= todays_date <= death or death is null
0 голосов
/ 17 июня 2010

Похоже, что дата / время истечения срока - это поле, которое вам нужно хранить и принимать решения на основе. IsActive звучит как то, что вы рассчитываете на лету, основываясь на дате истечения срока действия и, возможно, других полях (даже если это боль)

IsActive как поле, вероятно, будет работать лучше, если бы оно не было продуктом какой-либо другой информации, такой как дата истечения срока действия, но было действительным само по себе, например, если пользователь вручную установил статус «активный» или «нет» активный».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...