Changes between Initial Version and Version 1 of DatabaseProgramming


Ignore:
Timestamp:
06/12/26 20:26:20 (4 days ago)
Author:
231001
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v1 v1  
     1== Функции, Процедури и Тригери
     2
     3
     4= '''Функции:'''
     5=== calculate_full_reservation_price
     6Функцијата calculate_full_reservation_price ја пресметува вкупната цена на една резервација врз основа на основната цена на престојот, дополнителните активности, изнајмената опрема и услугите достапни на избраната камп-локација. Доколку за резервацијата е применета промоција, функцијата ги пресметува и соодветните попусти (процентуални или фиксни), по што ја враќа конечната цена за плаќање заедно со детална распределба на сите трошоци.
     7=== is_camp_available
     8Функцијата is_camp_available проверува дали одредена камп-локација е достапна за резервација во зададен временски период. Најпрво ја валидира исправноста на внесените датуми, потоа проверува дали камп-локацијата постои и дали е активна, а потоа пребарува дали постојат постоечки резервации со статус „pending“ или „confirmed“ кои се преклопуваат со бараниот период. Функцијата враќа TRUE доколку локацијата е слободна и достапна за резервација, а FALSE во спротивно.
     9= '''Процедури:'''
     10=== make_reservation
     11Процедурата make_reservation овозможува креирање нова резервација за избрана камп-локација. Најпрво проверува дали локацијата е достапна во бараниот период, дали бројот на гости го почитува максимално дозволениот капацитет и дали постои важечка цена за избраниот термин. Потоа ја пресметува вкупната цена врз основа на бројот на ноќевања и цената по ноќ, а доколку е внесен промотивен код, го пресметува и применува соодветниот попуст. По успешните проверки, процедурата ја зачувува резервацијата во системот со статус „pending“, ја евидентира вкупната цена и генерира единствен идентификатор за новата резервација.
     12=== add_promotion
     13Процедурата add_promotion овозможува креирање нов промотивен код во системот. Најпрво проверува дали постои домаќин (host) со дадениот идентификатор, дали промотивниот код е единствен и дали внесениот период на важност е правилно дефиниран. Потоа ги валидира вредностите за фиксниот и процентуалниот попуст, осигурувајќи дека е зададен барем еден вид попуст и дека внесените вредности се во дозволените граници. По успешното поминување на сите проверки, процедурата ја зачувува промоцијата во базата на податоци и ја прави достапна за користење при идни резервации.
     14=== rent_equipment
     15Процедурата rent_equipment овозможува изнајмување опрема поврзана со постоечка резервација. Најпрво проверува дали резервацијата постои и дали нејзиниот статус дозволува изнајмување опрема, а потоа ја проверува достапноста на избраната опрема и валидноста на периодот за изнајмување. По успешните проверки, процедурата ја пресметува вкупната цена врз основа на времетраењето на изнајмувањето, дневната цена и бараната количина, како и потребниот депозит. Потоа креира запис за изнајмувањето, ја ажурира достапната количина на опремата и ги зачувува промените во базата на податоци.
     16=== return_equipment
     17Процедурата return_equipment овозможува евидентирање на враќање на претходно изнајмена опрема. Најпрво проверува дали постои запис за изнајмувањето и дали опремата веќе не е вратена. Доколку условите се исполнети, го менува статусот на изнајмувањето од „rented“ (или активен статус) во „returned“, а потоа ја ажурира достапната количина на соодветната опрема со враќање на изнајмените единици во залихата. На крај, промените се зачувуваат во базата на податоци и се прикажува потврда за успешно враќање на опремата.
     18=== add_reservation_count
     19Процедурата add_reservation_count служи за ажурирање на бројот на резервации поврзани со одреден гостин. Најпрво проверува дали постои гостин со дадениот идентификатор, а потоа ја презема тековната вредност на бројачот на резервации. По успешната проверка, процедурата го зголемува бројот на резервации за еден, со што се евидентира новокреирана резервација на корисникот. На крај, промените се зачувуваат во базата на податоци и се прикажува информација за успешно ажурирање на бројот на резервации.
     20= '''Тригери:'''
     21=== trg_update_host_rating
     22Тригерот trg_update_host_rating, кој ја повикува функцијата update_host_rating, служи за автоматско ажурирање на просечната оцена на домаќинот (Host) при внесување нова рецензија. По додавањето на нов запис во табелата Review, функцијата го пронаоѓа домаќинот поврзан со соодветната камп-локација и повторно ја пресметува просечната оцена врз основа на сите постоечки рецензии за таа локација. Добиената вредност се зачувува во профилот на домаќинот, а дополнително се освежува и материјализираниот поглед view_camp_avg_rating за да се обезбеди прикажување на најновите податоци.