== UC004 - Приказ на запишани семестри '''Иницијален актер:''' Студент '''Други актери:''' - Студентот сака да ја види историјата на сите семестри кои ги запишал, со студиската програма, квотата и статусот на секој од нив. Целта е преглед од кој може да продолжи кон предметите на конкретен семестар. === Сценарио 1. Студентот се најавува и избира '''Семестри''' од менито. 2. Системот го чита идентификаторот на студентот од пристапниот токен и ги презема сите негови запишани семестри. Семестрите се подредени од најнов кон најстар; во рамките на иста година зимскиот семестар претходи на летниот. {{{#!sql SELECT es.id, a.year, a.type, m.name AS major, es.quota, es.note, es.student_comment, es.created_at, es.last_change, es.completed FROM project.enrolled_semesters es JOIN project.active_semesters a ON a.id = es.semester_id JOIN project.major m ON m.id = es.major_id WHERE es.user_id = 1 ORDER BY a.year DESC, (a.type = 'summer') DESC; }}} 3. Системот ја прикажува табелата со по еден ред за секој семестар. Колоната ''Завршен'' се пополнува според тоа дали completed има вредност. 4. Студентот избира конкретен семестар за да ги види неговите предмети, со што се преминува на [wiki:UseCase005 UC005]. === Забелешки * Ограничувањето UNIQUE (user_id, semester_id) во enrolled_semesters гарантира дека студентот не може да се појави двапати во истиот семестар, па во оваа табела нема дупликати. * Атрибутот completed е timestamp, а не boolean, па покрај тоа дали семестарот е завршен се знае и кога е заверен.