Changes between Version 2 and Version 3 of AdvancedApplicationDevelopment


Ignore:
Timestamp:
06/25/25 10:47:40 (3 days ago)
Author:
223270
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedApplicationDevelopment

    v2 v3  
    33
    44=== Примери на индекси
    5 Индексите се користат за да се забрза извршувањето на често користени SELECT, JOIN и WHERE. Со оглед на тоа што во Travel Sage често пребаруваме активности според датум и корисник, се додаваат индекси врз тие колони.
     5Индексите се користат за забрзување на пребарувања што често се изведуваат. Во Travel Sage, се прави пребарување на активности според период, филтрирање на резервации по корисник, како и пребарување на дестинации според име. Со додавање индекси на овие колони, апликацијата работи побрзо и поефикасно.
    66
    77* За побрзо пребарување на активности во одреден период
     
    2525
    26261. Спречување дупли препораки
     27Ако корисник веќе има препорака за истата дестинација, не му се дозволува повторно да ја додаде.
    2728{{{
    2829CREATE OR REPLACE FUNCTION prevent_duplicate_recommendation()
     
    4546
    46472. Деактивирање дестинација со негативни рецензии
     48Ако некој внесе рецензија со оцена помала од 3, системот автоматски ја прави дестинацијата неактивна за да не се прикажува во понатамошните резултати.
    4749{{{
    4850CREATE OR REPLACE FUNCTION check_negative_review()
     
    8284}}}
    83852. Активности со најниски цени
     86Го пресметува процентот на ефтини активности по дестинација – корисно за филтрирање при буџетско патување.
    8487{{{
    8588 DB::statement("
     
    98101=== Трансакции
    991021. Пример при резервација на активност
     103Ако не успее било кој дел (резервација или ажурирање на квота), не се зачувува ништо – атомичност.
    100104{{{
    101105DB::transaction(function () use ($request) {
     
    111115});
    112116}}}
    113 Ако не успее било кој дел (резервација или ажурирање на квота), не се зачувува ништо – атомичност.
    114117
    115 2.
     118
     1192. Внесување на нови податоци во табелите за пакети, настани и активности
     120Се користи трансакција за да сигурност дека внесувањето е валидно и се запишува како целина.
    116121{{{
    117122DB::transaction(function () use ($request) {
     
    128133
    129134
    130 3.
    131135{{{
    132136DB::transaction(function () use ($request) {
     
    144148
    145149
    146 4.
    147150{{{
    148151DB::transaction(function () use ($request) {
     
    159162
    160163=== Складирани функции и процедури
     164Функциите и процедурите се дефинирани во базата и можат да се повикуваат од апликацијата. На тој начин се централизира логиката и се олеснува одржувањето.
    1611651. Просечна оцена за локација (функција)
     166Може да се користи кога прикажуваме детали за локација или за сортирање по оцена.
    162167{{{
    163168CREATE OR REPLACE FUNCTION avg_rating_for_location(dest_id INT)
     
    186191$$;
    187192}}}
    188 Овие складирани елементи се користат за централизирана логика и можат да се повикаат од Laravel или други процедури.
    189193