#php #mysql
#php #mysql
Вопрос:
я делаю проект библиотеки для своего колледжа. в этом случае у меня есть таблица с именем ‘tbl_reserve’ для резервирования хранилища. Структура
Структура таблицы Есть два поля даты для хранения даты резервирования и даты истечения срока действия. ‘reserve_status’ показывает, является ли он «Зарезервированным / истекшим».
есть ли какой-либо способ автоматического изменения значения поля ‘reserve_status’ после истечения срока действия.
я использую PHP и MySQL.
Комментарии:
1. Позволит ли вам ситуация вычислить ее на лету? В принципе, если текущая дата находится между from и to, это все еще активное резервирование. Или вам нужно пометить это так по какой-то другой причине?
2. ДА. он может вычислять на лету. но записей слишком много. я думал, что поля состояния экономят некоторое время при выполнении запросов.
3. Как именно используются эти данные? Если вы не извлекаете большие наборы записей, «на лету» было бы хорошо. Однако, если вы пытаетесь получить данные по статусу, вам, вероятно, захочется предварительно вычислить его (особенно, если вы использовали статус только в качестве фильтра, и никаких других условий where).
4. Приблизительно 500 запросов в день для этой страницы.
5. Количество запросов — это не то, что мне интересно. Мне любопытно, на каких условиях вы извлекаете данные. Вы извлекаете резервы текущего зарегистрированного пользователя или что?
Ответ №1:
Вы можете, например, запустить процесс с некоторым фиксированным интервалом, чтобы проверить, истек ли срок действия резервирования, это можно сделать, например, с помощью Cronjob.
Другой способ — проверять срок действия каждый раз, когда к таблице обращаются по какой-либо причине.
Ответ №2:
Я бы просто проверил, хотите ли вы добавить новое резервирование, если срок действия старого истек, и затем удалите его. Вы также можете запустить cronjob, который проверяет все строки и удаляет строки с истекшим сроком действия.
Ответ №3:
Нет, вы должны использовать cronjobs для решения этой проблемы.