Changes between Version 2 and Version 3 of функции,процедури,тригери
- Timestamp:
- 06/14/26 19:05:58 (11 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
функции,процедури,тригери
v2 v3 29 29 END; 30 30 $$ LANGUAGE plpgsql; 31 get_reservation_total_with_discount 32 33 Ја пресметува вкупната цена на сите тикети за одредена резервација со применет попуст од промоција. Го зема збирот на цените на тикетите и го намалува според процентот на попуст. Се користи при финализирање на резервација кога корисникот применува промотивен код. 31 34 -----------------Слободни места------------- 32 35 CREATE OR REPLACE FUNCTION get_available_seats( … … 54 57 END; 55 58 $$ LANGUAGE plpgsql; 59 get_available_seats 60 61 Го враќа бројот на слободни места за одредена проекција. Го пресметува капацитетот на салата намален за бројот на веќе продадени тикети. Се користи при прикажување на достапност на места пред купување тикет. 56 62 -------------------Просечен рејтинг-------------- 57 63 CREATE OR REPLACE FUNCTION get_movie_avg_rating( … … 70 76 END; 71 77 $$ LANGUAGE plpgsql; 78 get_movie_avg_rating 79 80 Го пресметува просечниот рејтинг на филм врз основа на сите рецензии. Враќа заокружена вредност на 2 децимали. Се користи при прикажување на оценката на филмот на корисниците. 72 81 ----------------Процедури-------------------- 73 82 ----------------Генерирање тикети за проекција — ------------ … … 148 157 END; 149 158 $$; 159 Процедури 160 generate_tickets_for_screening 161 162 Автоматски генерира тикети за секое седиште во салата за одредена проекција. Содржи валидации за постоење на проекцијата, датумот, цената, салата и седиштата. Се користи од администраторот при додавање нова проекција во системот. 150 163 -------------------------Процедура 2 — Купување тикет со производи----------------- 151 164 CREATE OR REPLACE PROCEDURE purchase_ticket_with_products( … … 228 241 END; 229 242 $$; 243 purchase_ticket_with_products 244 245 Овозможува купување на тикет заедно со производи (пр. пуканки, пијалоци) во една трансакција. Содржи валидации за тикетот, корисникот, резервацијата и производите, и прави ROLLBACK при грешка. Се користи при процесот на купување тикет од страна на корисникот. 230 246 ----------------------------Процедура 3 — Додај review за филм-------------------- 231 247 CREATE OR REPLACE PROCEDURE add_movie_review( … … 288 304 END; 289 305 $$; 306 add_movie_review 307 308 Овозможува корисник да остави рецензија и рејтинг за филм само ако купил тикет за истиот. Содржи валидации за постоење на корисникот, филмот, рејтингот (1-10) и дали веќе оставил рецензија. Се користи при оставање feedback по гледање на филмот. 290 309 291 310 -----------------------Тригери------------------------------------ … … 309 328 FOR EACH ROW 310 329 EXECUTE FUNCTION check_seat_availability(); 330 trg_check_seat_availability 331 332 Пред секое внесување на тикет проверува дали седиштето е веќе зафатено за таа проекција. Ако седиштето е зафатено, фрла исклучок и го спречува дуплирањето. Ја имплементира бизнис логиката за спречување на двојна резервација на исто место. 311 333 -----------------------Тригер 2 — Автоматска нотификација при резервација----------- 312 334 CREATE OR REPLACE FUNCTION notify_on_reservation() … … 327 349 FOR EACH ROW 328 350 EXECUTE FUNCTION notify_on_reservation(); 351 trg_notify_on_reservation 352 353 По успешно креирање на резервација автоматски испраќа нотификација до корисникот. Ја имплементира логиката за информирање на корисникот за статусот на неговата резервација. 329 354 -----------------------Тригер 3 — Автоматски COMPLETED статус---------------------- 330 355 CREATE OR REPLACE FUNCTION complete_past_reservations() … … 347 372 FOR EACH ROW 348 373 EXECUTE FUNCTION complete_past_reservations(); 374 trg_complete_past_reservations 375 376 По внесување на нова проекција, автоматски ги означува минатите резервации со статус COMPLETED. Ја имплементира бизнис логиката за автоматско завршување на резервации чија проекција веќе поминала.
