Changes between Version 1 and Version 2 of dbdevelopment
- Timestamp:
- 01/30/26 20:46:41 (3 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
dbdevelopment
v1 v2 146 146 SELECT COUNT(*) INTO v_active_enrollments 147 147 FROM enrollment 148 WHERE course_version_id = OLD.id 149 AND completion_date IS NULL; 148 WHERE course_version_id = OLD.id; 150 149 151 150 IF v_active_enrollments > 0 THEN … … 246 245 }}} 247 246 248 {{{249 CREATE OR REPLACE FUNCTION audit_review_changes()250 RETURNS TRIGGER AS $$251 BEGIN252 IF TG_OP = 'INSERT' THEN253 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' THEN256 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' THEN259 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_review268 AFTER INSERT OR UPDATE OR DELETE ON review269 FOR EACH ROW270 EXECUTE FUNCTION audit_review_changes();271 }}}272 273 247 ==== Погледи (Views) ==== 274 248 … … 293 267 }}} 294 268 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 313 269 ---- 314 270
