Changes between Version 7 and Version 8 of AdvancedApplicationDevelopment


Ignore:
Timestamp:
09/25/25 13:11:27 (3 weeks ago)
Author:
223270
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedApplicationDevelopment

    v7 v8  
    2525
    26261. Деактивирање дестинација со негативни рецензии
    27 Ако некој внесе рецензија со оцена помала од 3, системот автоматски ја прави дестинацијата неактивна за да не се прикажува во понатамошните резултати.
     27Деактивира дестинација само ако просечната оцена падне под еден праг, а не на првата ниска оцена. Всушност дестинацијата ќе се деактивира само ако навистина падне просечната оцена.
    2828{{{
    29 CREATE OR REPLACE FUNCTION check_negative_review()
     29CREATE OR REPLACE FUNCTION check_avg_rating()
    3030RETURNS TRIGGER AS $$
     31DECLARE
     32    avg_rating FLOAT;
    3133BEGIN
    32    IF NEW.ocenka < 3 THEN
    33        UPDATE destinacii
    34        SET aktivna = FALSE
    35        WHERE iddest = NEW.iddest;
    36    END IF;
    37    RETURN NEW;
     34    SELECT AVG(ocenka) INTO avg_rating
     35    FROM recenzii
     36    WHERE iddest = NEW.iddest;
     37
     38    IF avg_rating < 4 THEN
     39        UPDATE destinacii
     40        SET aktivna = FALSE
     41        WHERE iddest = NEW.iddest;
     42    END IF;
     43
     44    RETURN NEW;
    3845END;
    3946$$ LANGUAGE plpgsql;
    4047
    41 CREATE TRIGGER trg_negative_review
     48CREATE TRIGGER trg_avg_rating
    4249AFTER INSERT ON recenzii
    43 FOR EACH ROW EXECUTE FUNCTION check_negative_review();
     50FOR EACH ROW
     51EXECUTE FUNCTION check_avg_rating();
    4452}}}
    4553