Changes between Version 2 and Version 3 of AdvancedApplicationDevelopment
- Timestamp:
- 06/25/25 10:47:40 (3 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AdvancedApplicationDevelopment
v2 v3 3 3 4 4 === Примери на индекси 5 Индексите се користат за да се забрза извршувањето на често користени SELECT, JOIN и WHERE. Со оглед на тоа што во Travel Sage често пребаруваме активности според датум и корисник, се додаваат индекси врз тие колони.5 Индексите се користат за забрзување на пребарувања што често се изведуваат. Во Travel Sage, се прави пребарување на активности според период, филтрирање на резервации по корисник, како и пребарување на дестинации според име. Со додавање индекси на овие колони, апликацијата работи побрзо и поефикасно. 6 6 7 7 * За побрзо пребарување на активности во одреден период … … 25 25 26 26 1. Спречување дупли препораки 27 Ако корисник веќе има препорака за истата дестинација, не му се дозволува повторно да ја додаде. 27 28 {{{ 28 29 CREATE OR REPLACE FUNCTION prevent_duplicate_recommendation() … … 45 46 46 47 2. Деактивирање дестинација со негативни рецензии 48 Ако некој внесе рецензија со оцена помала од 3, системот автоматски ја прави дестинацијата неактивна за да не се прикажува во понатамошните резултати. 47 49 {{{ 48 50 CREATE OR REPLACE FUNCTION check_negative_review() … … 82 84 }}} 83 85 2. Активности со најниски цени 86 Го пресметува процентот на ефтини активности по дестинација – корисно за филтрирање при буџетско патување. 84 87 {{{ 85 88 DB::statement(" … … 98 101 === Трансакции 99 102 1. Пример при резервација на активност 103 Ако не успее било кој дел (резервација или ажурирање на квота), не се зачувува ништо – атомичност. 100 104 {{{ 101 105 DB::transaction(function () use ($request) { … … 111 115 }); 112 116 }}} 113 Ако не успее било кој дел (резервација или ажурирање на квота), не се зачувува ништо – атомичност.114 117 115 2. 118 119 2. Внесување на нови податоци во табелите за пакети, настани и активности 120 Се користи трансакција за да сигурност дека внесувањето е валидно и се запишува како целина. 116 121 {{{ 117 122 DB::transaction(function () use ($request) { … … 128 133 129 134 130 3.131 135 {{{ 132 136 DB::transaction(function () use ($request) { … … 144 148 145 149 146 4.147 150 {{{ 148 151 DB::transaction(function () use ($request) { … … 159 162 160 163 === Складирани функции и процедури 164 Функциите и процедурите се дефинирани во базата и можат да се повикуваат од апликацијата. На тој начин се централизира логиката и се олеснува одржувањето. 161 165 1. Просечна оцена за локација (функција) 166 Може да се користи кога прикажуваме детали за локација или за сортирање по оцена. 162 167 {{{ 163 168 CREATE OR REPLACE FUNCTION avg_rating_for_location(dest_id INT) … … 186 191 $$; 187 192 }}} 188 Овие складирани елементи се користат за централизирана логика и можат да се повикаат од Laravel или други процедури.189 193