| Version 30 (modified by , 6 days ago) ( diff ) |
|---|
Функции, процедури и тригери
Процедури
Во овој дел се прикажани процедури кои овозможуваат централизирано извршување на операции над базата на податоци. Процедурите се користат за автоматизација на сложени процеси, вметнување, ажурирање и бришење на податоци.
Процедура 1 : pr_sell_ticket
Овој trigger автоматски го поставува статусот на резервацијата како "Active" или "Expired" според датумот на истекување. Се користи за автоматско ажурирање на резервациите и одржување точни податоци во системот
Тригери
Во овој дел се прикажани скриптите потребни за дефинирање на тригерите кои овозможуваат автоматска обработка и контрола на податоците во базата. Тригерите се користат за одржување на интегритетот, автоматско ажурирање на вредности и евиденција на промените во системот.
Тригер 1 : auto_set_reservation_status
Овој trigger автоматски го поставува статусот на резервацијата како "Active" или "Expired" според датумот на истекување. Се користи за автоматско ажурирање на резервациите и одржување точни податоци во системот
Тригер 2 : prevent_duplicate_seat_booking
Овој trigger спречува дупло резервирање на исто седиште на исто патување со воз. Пред внесување нов билет, системот проверува дали седиштето е веќе резервирано и ако постои, прикажува грешка во спротивно. Се користи за да се избегнат конфликти и да се обезбедат точни резервации на билети.
Тригер 3 : update_trip_status_based_on_delay
Овој trigger автоматски го ажурира статусот на патувањето според доцнењето на возот. Ако бројот на минути за доцнење е поголем од 0, статусот се поставува на "Delayed", а во спротивно на "On Time". Се користи за автоматско следење и прикажување на точниот статус на возовите.
Тригер 4 : auto_set_transaction_date
Овој trigger автоматски ја поставува датата на трансакцијата ако не е внесена при креирање на плаќање. Ако transaction_date е NULL, системот ја става тековната дата. Се користи за да се осигураме дека секое плаќање има точен датум и за автоматско и конзистентно водење на финансиски записи.
Тригер 5 : prevent_employee_trip_overlap
Овој trigger спречува еден вработен да биде доделен на две патувања во исто време. Пред внесување нов запис во "Train Trip", системот проверува дали веќе постои ист вработен со исто време на поаѓање и ако да, фрла грешка. Се користи за да се избегнат конфликти во распоредот и за правилно распределување на вработените.
Тригер 6 : check_and_mark_overbooked
Овој trigger проверува дали бројот на продадени билети го надминува капацитетот на возот за дадено патување. Ако има повеќе билети од дозволени места, автоматски го менува статусот на патувањето во "Overbooked" и дава известување. Се користи за автоматско следење на пополнетост и спречување на преголем број резервации.
Тригер 7 : prevent_station_delete_active_trip
Овој trigger спречува бришење на станица ако таа е веќе користена во билети или патувања. Пред DELETE во табелата Station, системот проверува дали постојат поврзани записи и ако има, фрла грешка. Се користи за заштита на податоците и одржување на интегритет на базата.
Функции
Во овој дел се прикажани функциите кои се користат за извршување на специфични пресметки и обработка на податоците во базата. Функциите овозможуваат повторна употреба на логика и поедноставување на SQL наредбите.
Attachments (30)
- functions.sql (7.5 KB ) - added by 13 days ago.
- prodecures.sql (8.5 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 142512.png (59.9 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 143034.png (84.8 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 143448.png (57.3 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 144202.png (50.4 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 144545.png (84.9 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 145123.png (72.9 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 145522.png (77.7 KB ) - added by 6 days ago.
- triggers.sql (4.6 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 154906.png (107.8 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 160834.png (103.5 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 160856.png (70.3 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 160911.png (58.8 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 161319.png (110.2 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 161643.png (72.5 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 161953.png (95.3 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 162556.png (105.4 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 162956.png (67.5 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 163229.png (104.4 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 163515.png (78.3 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 164529.png (66.8 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 165507.png (74.4 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 165904.png (79.7 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 170403.png (76.8 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 170830.png (69.6 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 171159.png (73.9 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 171652.png (104.0 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 171658.png (28.0 KB ) - added by 6 days ago.
- Screenshot 2026-05-20 172105.png (42.8 KB ) - added by 6 days ago.











