| Version 3 (modified by , 5 days ago) ( diff ) |
|---|
Фаза 4: Функции, процедури, тригери
Апликациската логика е имплементирана на ниво на база на податоци со користење на PL/pgSQL функции, процедури и тригери.
Во продолжение се издвоени најважните функционалности имплементирани преку процедури и тригери:
1. Ослободување на откажани билети (Тригер функција)
- Назив:
trg_fn_release_cancelled_tickets() - Опис: Тригер кој се активира автоматски по бришење или откажување на резервација, враќајќи ги билетите повторно во системот како слободни и ажурирајќи го вкупниот број на достапни места.
<syntaxhighlight lang="sql" line> CREATE OR REPLACE FUNCTION public.trg_fn_release_cancelled_tickets()
RETURNS trigger LANGUAGE plpgsql
AS $function$ BEGIN
IF NEW.status = 'cancelled' AND OLD.status != 'cancelled' THEN
UPDATE ticket SET status = 'available', user_id = NULL WHERE ticket_id = NEW.ticket_id;
END IF; RETURN NEW;
END; $function$ ;
</syntaxhighlight>
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.
