Changes between Version 3 and Version 4 of DatabaseProgramming


Ignore:
Timestamp:
05/28/26 23:46:59 (3 weeks ago)
Author:
231151
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v3 v4  
    1414
    1515== Materialized Views Explained
    16 **1. mv_fuel_consumption - Потрошувачка на гориво**
     16**1. {{{mv_fuel_consumption}}} - Потрошувачка на гориво**
    1717        •       Го следи целото горивно досие за секое возило. За секое возило ги брои вкупните пристигнувања, вкупните литри и трошоци, просечните вредности по пристигнување, датумот на последно пристигнување и посебно потрошувачката само во последните 30 дена (и литри и трошоци). Ги вклучува сите возила дури и ако немаат ниту едно пристигнување.
    18 **2. mv_passenger_complaints - Жалби по патник**
     18**2. {{{mv_passenger_complaints}}} - Жалби по патник**
    1919        •       За секој патник го брои вкупниот број на поднесени жалби и го памети датумот на последната жалба. Ги вклучува и патниците без ниедна жалба.
    20 **3. mv_revenue_by_route - Финансиски извештај по линија**
     20**3. {{{mv_revenue_by_route}}} - Финансиски извештај по линија**
    2121        •       За секоја линија/рута ги прикажува: агенцијата, вкупниот број патувања, бројот на продадени билети, бруто-приходот (сума на сите цени), реално наплатениот приход односно само completed плаќањата и просечната цена на билет. Откажаните и рефундираните билети се исклучени.
    22 **4. mv_trip_delays - Доцнења по патување**
     22**4. {{{mv_trip_delays}}} - Доцнења по патување**
    2323        •       За секое патување со регистрирано доцнење ги прикажува: датумот, рутата, возилото, возачот, вкупниот број записи за доцнење, вкупните и просечните минути доцнење, максималното доцнење и сите причини споени во еден текст. Патувањата без доцнење не се прикажуваат.
    24 **5. mv_vehicle_occupany_stats - Патници по возило**
     24**5. {{{mv_vehicle_occupany_stats}}} - Патници по возило**
    2525        •       За секое возило го пресметува просечниот и максималниот број на патници врз основа на логираните записи во capacity_log, заедно со вкупниот број на тие записи.
    2626
     
    2828
    2929== Procedures Explained
    30 **1. add_trip - Додавање ново возење**
     30**1. {{{add_trip}}} - Додавање ново возење**
    3131        •       Креира ново возење со зададен идентификатор, рута, возило, возач, датум, почетно и крајно време и опционален наслов. Возењето се внесува со статус scheduled.
    32 **2. buy_ticket - Купување билет**
     32**2. {{{buy_ticket}}} - Купување билет**
    3333        •       Купува билет за патник на одредено возење. Ако е зададено тарифно правило, цената ја пресметува преку calculate_ticket_price, инаку ја зема base_price од типот на билет. Билетот се внесува со статус valid.
    34 **3. report_delay - Евидентирање доцнење и известување патници**
     34**3. {{{report_delay}}} - Евидентирање доцнење и известување патници**
    3535        •       Го запишува доцнењето во delay_log, го менува статусот на возењето во delayed и автоматски испраќа pending нотификација до сите патници со валиден билет за тоа возење.
    36 **4. assign_discount_to_passenger - Доделување попуст на патник**
     36**4. {{{assign_discount_to_passenger}}} - Доделување попуст на патник**
    3737        •       Му доделува попуст на патник со зададен датум на истекување. Пред внесување проверува дали патникот веќе го има тој попуст активен.
    38 **5. complete_trip - Завршување возење**
     38**5. {{{complete_trip}}} - Завршување возење**
    3939        •       Го завршува возењето со проверка дали е во статус in_progress. По потврда го менува статусот на возењето во completed и ги означува сите валидни билети како used.
    40 **6. refund_ticket - Враќање билет**
     40**6. {{{refund_ticket}}} - Враќање билет**
    4141        •       Го рефундира билетот со проверка дали постои и дали е во статус valid. По потврда го менува статусот на билетот во refunded и го ажурира поврзаното плаќање исто така во refunded.
    42 **7. schedule_driver - Закажување распоред за возач**
     42**7. {{{schedule_driver}}} - Закажување распоред за возач**
    4343        •       Му закажува смена на возач за одреден датум со почетно и крајно време. Пред внесување проверува дали возачот веќе има закажано за тој датум.
    4444
    4545== Triggers Explained
    46 **1. trg_ticket_expire - Автоматско истекување на билет**
     46**1. {{{trg_ticket_expire}}} - Автоматско истекување на билет**
    4747        •       При внесување или ажурирање на билет, ако статусот е valid и датумот на купување е постар од 1 ден, автоматски го менува статусот во expired.
    48 **2. trg_vehicle_delete - Спречување бришење на активно возило**
     48**2. {{{trg_vehicle_delete}}} - Спречување бришење на активно возило**
    4949        •       Пред бришење на возило проверува дали има активни возења со статус scheduled или in_progress. Ако има, бришењето се блокира.
    50 **3. trg_pass_expire - Автоматско истекување на претплата**
     50**3. {{{trg_pass_expire}}} - Автоматско истекување на претплата**
    5151        •       При внесување или ажурирање на претплатата, ако крајниот датум е поминат и статусот е active, автоматски го менува статусот во expired.
    52 **4. trg_driver_double_schedule - Спречување двојно закажување на возач**
     52**4. {{{trg_driver_double_schedule}}} - Спречување двојно закажување на возач**
    5353        •       Пред внесување или ажурирање на распоред проверува дали возачот веќе има закажано за тоа време и датум. Ако има, операцијата се блокира.
    54 **5. trg_delay_notification - Автоматска нотификација при доцнење**
     54**5. {{{trg_delay_notification}}} - Автоматска нотификација при доцнење**
    5555        •       По внесување на ново доцнење, автоматски испраќа pending нотификација до сите патници со валиден билет за тоа возење, со порака за бројот на минути и причината.
    56 **6. trg_trip_vehicle_active - Проверка на статус на возило пред закажување**
     56**6. {{{trg_trip_vehicle_active}}} - Проверка на статус на возило пред закажување**
    5757        •       Пред внесување на ново возење проверува дали возилото е со статус active. Ако не е, внесувањето се блокира.