wiki:Faza4

Version 3 (modified by 231042, 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.