mysql — PHP: удаление записей через 15 минут на основе значений в разных таблицах

Я создал страницу для бронирования номеров в библиотеке. Когда пользователь приходит и берет ключ, столбец «извлечено» его записи обновляется до «1». Пользователь может опоздать максимум на 15 минут. Через 15 минут бронирование будет удалено, чтобы другие пользователи могли забронировать номер.

Стол room_reservation имеет столбец с именем reservation_id, Число в этом столбце используется в двух других таблицах. Продолжительность, владелец бронирования и некоторые другие данные хранятся в этой таблице.

Стол reservation_checked_out имеет столбец checked_out (по умолчанию 0) сохраняя значение 0 или 1. Другой столбец entity_id где хранится информация, для какой брони ключ был выписан. Entity_id в этой таблице совпадает с reservation_id от table room_reservation,

Стол reservation_datetime держит в столбце reservation_datetime_value когда оговорка была сделана и столбец entity_id для какой резервации. Снова: entity_id в этой таблице совпадает с reservation_id от table room_reservation,

Как я могу удалить бронирование в таблице room_reservation если ключ не проверен в таблице reservation_checked_out.checked_out но бронирование началось 15 минут назад в таблице reservation_datetime.reservation_datetime_value?

Любая идея о том, как я мог бы сделать эту работу?

0

Решение

Попробуйте этот SQL-запрос:

DELETE r.* FROM `room_reservation` r INNER JOIN `reservation_checked_out` c ON (c.entity_id = r.reservation_id), `reservation_datetime` d ON (d.entity_id = r.reservation_id) WHERE c.checked_out = 0 AND d.reservation_datetime_value <= NOW() - INTERVAL 15 MINUTE;

Вы можете выполнить это через PHP с помощью задания cron.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]