В современном быстро меняющемся мире эффективное управление бронированием авиабилетов имеет решающее значение для авиакомпаний. Хорошо спроектированная система управления базами данных (СУБД) играет жизненно важную роль в обеспечении бесперебойной работы. Одной из мощных функций СУБД являются триггеры, которые автоматизируют действия на основе определенных событий. В этой статье мы рассмотрим различные методы использования триггеров в СУБД системы бронирования самолетов, а также приведем примеры кода.
- Триггер при вставке.
Обычным вариантом использования является автоматическое обновление количества доступных мест при новом бронировании. Рассмотрим следующий пример кода на SQL:
CREATE TRIGGER update_seat_count
AFTER INSERT ON reservations
FOR EACH ROW
BEGIN
UPDATE flights
SET available_seats = available_seats - 1
WHERE flight_id = NEW.flight_id;
END;
- Триггер при обновлении.
Триггеры можно использовать для проверки и обеспечения соблюдения бизнес-правил. Например, давайте обеспечим, чтобы бронирование не могло быть обновлено после наступления даты вылета рейса:
CREATE TRIGGER prevent_update_after_departure
BEFORE UPDATE ON reservations
FOR EACH ROW
BEGIN
IF NEW.departure_date < CURDATE() THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Cannot update reservation after departure';
END IF;
END;
- Триггер при удалении.
Триггеры также могут обрабатывать каскадные действия. Давайте рассмотрим пример, в котором при отмене бронирования автоматически обновляется количество доступных мест:
CREATE TRIGGER update_seat_count_on_delete
AFTER DELETE ON reservations
FOR EACH ROW
BEGIN
UPDATE flights
SET available_seats = available_seats + 1
WHERE flight_id = OLD.flight_id;
END;
- Триггер для регистрации:
Триггеры можно использовать для регистрации важных событий. Давайте зарегистрируем детали каждого сделанного бронирования:
CREATE TRIGGER log_reservation
AFTER INSERT ON reservations
FOR EACH ROW
BEGIN
INSERT INTO reservation_logs (reservation_id, customer_id, timestamp)
VALUES (NEW.reservation_id, NEW.customer_id, NOW());
END;
Триггеры базы данных предоставляют мощный механизм для автоматизации действий и обеспечения соблюдения бизнес-правил в СУБД системы бронирования самолетов. Мы исследовали различные методы использования триггеров, включая обновление количества мест, соблюдение ограничений, обработку каскадных действий и регистрацию событий. Эффективно используя триггеры, авиакомпании могут повысить эффективность и оптимизировать процессы бронирования.