Changes between Version 1 and Version 2 of dbdevelopment


Ignore:
Timestamp:
01/30/26 20:46:41 (3 hours ago)
Author:
231175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • dbdevelopment

    v1 v2  
    146146    SELECT COUNT(*) INTO v_active_enrollments
    147147    FROM enrollment
    148     WHERE course_version_id = OLD.id
    149       AND completion_date IS NULL;
     148    WHERE course_version_id = OLD.id;
    150149   
    151150    IF v_active_enrollments > 0 THEN
     
    246245}}}
    247246
    248 {{{
    249 CREATE OR REPLACE FUNCTION audit_review_changes()
    250 RETURNS TRIGGER AS $$
    251 BEGIN
    252     IF TG_OP = 'INSERT' THEN
    253         INSERT INTO review_audit (review_id, new_rating, new_comment, action)
    254         VALUES (NEW.id, NEW.rating, NEW.comment, 'INSERT');
    255     ELSIF TG_OP = 'UPDATE' THEN
    256         INSERT INTO review_audit (review_id, old_rating, new_rating, old_comment, new_comment, action)
    257         VALUES (NEW.id, OLD.rating, NEW.rating, OLD.comment, NEW.comment, 'UPDATE');
    258     ELSIF TG_OP = 'DELETE' THEN
    259         INSERT INTO review_audit (review_id, old_rating, old_comment, action)
    260         VALUES (OLD.id, OLD.rating, OLD.comment, 'DELETE');
    261     END IF;
    262    
    263     RETURN NEW;
    264 END;
    265 $$ LANGUAGE plpgsql;
    266 
    267 CREATE TRIGGER trg_audit_review
    268 AFTER INSERT OR UPDATE OR DELETE ON review
    269 FOR EACH ROW
    270 EXECUTE FUNCTION audit_review_changes();
    271 }}}
    272 
    273247==== Погледи (Views) ====
    274248
     
    293267}}}
    294268
    295 ==== Помошни табели (Audit) ====
    296 
    297 {{{
    298 CREATE TABLE review_audit (
    299     id SERIAL PRIMARY KEY,
    300     review_id INTEGER NOT NULL REFERENCES review(id),
    301     old_rating INTEGER,
    302     new_rating INTEGER,
    303     old_comment TEXT,
    304     new_comment TEXT,
    305     changed_at TIMESTAMP DEFAULT NOW(),
    306     action VARCHAR(20)
    307 );
    308 
    309 CREATE INDEX idx_review_audit_review ON review_audit(review_id);
    310 CREATE INDEX idx_review_audit_changed_at ON review_audit(changed_at);
    311 }}}
    312 
    313269----
    314270