wiki:UseCase013

UC013 - Отворање на активен семестар

Иницијален актер: Администратор

Други актери: -

Администраторот отвора нов активен семестар, со што на студентите им се овозможува да се запишат во него преку UC007.

Сценарио

  1. Администраторот избира Семестри и потоа Нов семестар.
  1. Системот ги прикажува веќе отворените семестри, за да се избегне дупликат.
    SELECT id, year, type
    FROM project.active_semesters
    ORDER BY year DESC, (type = 'summer') DESC;
    
  1. Администраторот внесува година и тип на семестар (зимски или летен) и потврдува.
  1. Системот го отвора семестарот. Ограничувањето UNIQUE (year, type) спречува ист семестар да се отвори двапати.
    INSERT INTO project.active_semesters (year, type)
    VALUES (2027, 'summer')
    RETURNING id, year, type;
    
  1. Системот проверува дали секој предмет има професор во новиот семестар, бидејќи без тоа студентите не можат да го запишат предметот.
    SELECT s.id, s.code, s.name
    FROM project.subjects s
    WHERE NOT EXISTS (
        SELECT 1 FROM project.professour_subjects ps
        WHERE ps.subject_id = s.id
          AND ps.active_semester_id = (SELECT id FROM project.active_semesters
                                        WHERE year = 2027 AND type = 'summer')
    )
    ORDER BY s.code;
    
  1. Ако листата не е празна, администраторот преминува на UC014 за да ги распореди професорите.

Алтернативни текови

  • 4а. Семестарот веќе е отворен - ограничувањето UNIQUE (year, type) го одбива записот.

Забелешки

  • Типот на семестар е набројувачки тип semester_type со вредности 'summer' и 'winter'.
Last modified 13 days ago Last modified on 09/15/26 11:40:51
Note: See TracWiki for help on using the wiki.