Changes between Version 2 and Version 3 of DatabaseProgramming
- Timestamp:
- 05/28/26 23:33:14 (3 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DatabaseProgramming
v2 v3 14 14 15 15 == Materialized Views Explained 16 **1. mv_fuel_consumption ** - Потрошувачка на гориво16 **1. mv_fuel_consumption - Потрошувачка на гориво** 17 17 • Го следи целото горивно досие за секое возило. За секое возило ги брои вкупните пристигнувања, вкупните литри и трошоци, просечните вредности по пристигнување, датумот на последно пристигнување и посебно потрошувачката само во последните 30 дена (и литри и трошоци). Ги вклучува сите возила дури и ако немаат ниту едно пристигнување. 18 **2. mv_passenger_complaints ** - Жалби по патник18 **2. mv_passenger_complaints - Жалби по патник** 19 19 • За секој патник го брои вкупниот број на поднесени жалби и го памети датумот на последната жалба. Ги вклучува и патниците без ниедна жалба. 20 **3. mv_revenue_by_route ** - Финансиски извештај по линија20 **3. mv_revenue_by_route - Финансиски извештај по линија** 21 21 • За секоја линија/рута ги прикажува: агенцијата, вкупниот број патувања, бројот на продадени билети, бруто-приходот (сума на сите цени), реално наплатениот приход односно само completed плаќањата и просечната цена на билет. Откажаните и рефундираните билети се исклучени. 22 **4. mv_trip_delays ** - Доцнења по патување22 **4. mv_trip_delays - Доцнења по патување** 23 23 • За секое патување со регистрирано доцнење ги прикажува: датумот, рутата, возилото, возачот, вкупниот број записи за доцнење, вкупните и просечните минути доцнење, максималното доцнење и сите причини споени во еден текст. Патувањата без доцнење не се прикажуваат. 24 **5. mv_vehicle_occupany_stats ** - Патници по возило24 **5. mv_vehicle_occupany_stats - Патници по возило** 25 25 • За секое возило го пресметува просечниот и максималниот број на патници врз основа на логираните записи во capacity_log, заедно со вкупниот број на тие записи. 26 26 … … 28 28 29 29 == Procedures Explained 30 **1. add_trip ** - Додавање ново возење30 **1. add_trip - Додавање ново возење** 31 31 • Креира ново возење со зададен идентификатор, рута, возило, возач, датум, почетно и крајно време и опционален наслов. Возењето се внесува со статус scheduled. 32 **2. buy_ticket ** - Купување билет32 **2. buy_ticket - Купување билет** 33 33 • Купува билет за патник на одредено возење. Ако е зададено тарифно правило, цената ја пресметува преку calculate_ticket_price, инаку ја зема base_price од типот на билет. Билетот се внесува со статус valid. 34 **3. report_delay ** - Евидентирање доцнење и известување патници34 **3. report_delay - Евидентирање доцнење и известување патници** 35 35 • Го запишува доцнењето во delay_log, го менува статусот на возењето во delayed и автоматски испраќа pending нотификација до сите патници со валиден билет за тоа возење. 36 **4. assign_discount_to_passenger ** - Доделување попуст на патник36 **4. assign_discount_to_passenger - Доделување попуст на патник** 37 37 • Му доделува попуст на патник со зададен датум на истекување. Пред внесување проверува дали патникот веќе го има тој попуст активен. 38 **5. complete_trip ** - Завршување возење38 **5. complete_trip - Завршување возење** 39 39 • Го завршува возењето со проверка дали е во статус in_progress. По потврда го менува статусот на возењето во completed и ги означува сите валидни билети како used. 40 **6. refund_ticket ** - Враќање билет40 **6. refund_ticket - Враќање билет** 41 41 • Го рефундира билетот со проверка дали постои и дали е во статус valid. По потврда го менува статусот на билетот во refunded и го ажурира поврзаното плаќање исто така во refunded. 42 **7. schedule_driver ** - Закажување распоред за возач42 **7. schedule_driver - Закажување распоред за возач** 43 43 • Му закажува смена на возач за одреден датум со почетно и крајно време. Пред внесување проверува дали возачот веќе има закажано за тој датум. 44 44 45 45 == Triggers Explained 46 **1. trg_ticket_expire - Автоматско истекување на билет** 47 • При внесување или ажурирање на билет, ако статусот е valid и датумот на купување е постар од 1 ден, автоматски го менува статусот во expired. 48 **2. trg_vehicle_delete - Спречување бришење на активно возило** 49 • Пред бришење на возило проверува дали има активни возења со статус scheduled или in_progress. Ако има, бришењето се блокира. 50 **3. trg_pass_expire - Автоматско истекување на претплата** 51 • При внесување или ажурирање на претплатата, ако крајниот датум е поминат и статусот е active, автоматски го менува статусот во expired. 52 **4. trg_driver_double_schedule - Спречување двојно закажување на возач** 53 • Пред внесување или ажурирање на распоред проверува дали возачот веќе има закажано за тоа време и датум. Ако има, операцијата се блокира. 54 **5. trg_delay_notification - Автоматска нотификација при доцнење** 55 • По внесување на ново доцнење, автоматски испраќа pending нотификација до сите патници со валиден билет за тоа возење, со порака за бројот на минути и причината. 56 **6. trg_trip_vehicle_active - Проверка на статус на возило пред закажување** 57 • Пред внесување на ново возење проверува дали возилото е со статус active. Ако не е, внесувањето се блокира.
