wiki:Faza4

Version 4 (modified by 231042, 5 days ago) ( diff )

--

Фаза 4: Функции, процедури, тригери

Апликациската логика е имплементирана на ниво на база на податоци со користење на PL/pgSQL функции, процедури и тригери.

Во продолжение се издвоени најважните функционалности имплементирани преку процедури и тригери:

1. Ослободување на откажани билети (Тригер функција)

  • Назив: trg_fn_release_cancelled_tickets()
  • Опис: Тригер кој се активира автоматски по бришење или откажување на резервација, враќајќи ги билетите повторно во системот како слободни и ажурирајќи го вкупниот број на достапни места.
    CREATE OR REPLACE FUNCTION trg_fn_release_cancelled_tickets()
    RETURNS TRIGGER AS $$
    BEGIN
        -- Враќање на билетите во системот
        UPDATE events
        SET available_seats = available_seats + OLD.ticket_count
        WHERE event_id = OLD.event_id;
    
        RETURN OLD;
    END;
    $$ LANGUAGE plpgsql;
    
    CREATE TRIGGER trg_release_tickets
    AFTER DELETE ON reservations
    FOR EACH ROW
    EXECUTE FUNCTION trg_fn_release_cancelled_tickets();
    

2. Процес на купување билет (Процедура)

  • Назив: sp_buy_ticket(int4, int4)
  • Опис: Процедура која ја менаџира трансакцијата за купување билет. Проверува достапност, креира резервација и го поврзува корисникот со генерираниот билет.
  • Пример за повик: CALL public.sp_buy_ticket(1, 105);

3. Проверка на достапност (Функција)

  • Назив: fn_check_availability(int4)
  • Опис: Функција која за даден ID на настан или сектор брзо проверува и го враќа преостанатиот број на слободни места, спречувајќи "overbooking".
Note: See TracWiki for help on using the wiki.