narsss
@narsss
Ничего не умею, только спрашиваю

Можно ли написать функцию, которая меняет значение таблицы автоматически в зависимости от времени?

Пишу сайт для букинга отелей. Хочу автоматически деактивировать резервации, если гость не явился.
В таблице резервации храню статус. Eсли срок истек - то статус поменять на deactive. Можно ли такое осуществить при помощи sql или самого Asp? Надеюсь, смог обяснить, что хочу сделать.
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 4
rozhnev
@rozhnev Куратор тега SQL
Fullstack programmer, DBA, медленно, дорого
Я бы ввобще использовал одно поле например:
create table bookings (
    id int,
    active_til datetame
);


И уже ничего не нужно редактивировать
Ответ написан
Комментировать
@Vitsliputsli
Шедулер на стороне СУБД, либо на стороне app. Но проще и лучше просто фиксировать время до которого резервирование активно и проверять его при опросе статуса.
Ответ написан
Комментировать
@AVKor
Записывай время, когда номер был зарезервирован.
Затем периодически (через cron, HostedService, Quartz, Hangfire, хранимые процедуры с триггерами, Task Scheduler или как-либо ещё) делай запрос наподобие
UPDATE bookings WHERE status IS 'ACTIVE' AND add(reservation_date, '<тут твой срок>') > now() AND guest_visited IS FALSE SET status = 'INACTIVE';
.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы