| Version 2 (modified by , 2 weeks ago) ( diff ) |
|---|
UC009 - Приказ на студенти по предмет
Иницијален актер: Професор
Други актери: -
Професорот сака да ги види студентите запишани на предметите кои ги предава, групирани по предмет, заедно со тековната оценка на секој студент. Целта е преглед од кој може да премине кон оценување.
Сценарио
- Професорот се најавува и избира Студенти од менито.
- Системот го чита идентификаторот на професорот од пристапниот токен и ги презема сите студенти на неговите предмети. Студентот се добива преку запишаниот семестар, а оценката е LEFT JOIN бидејќи најголем дел од студентите сè уште немаат оценка.
SELECT s.id AS subject_id, s.code, s.name AS subject, u.id AS student_id, u."index", u.name || ' ' || u.surname AS student, ps.grade, a.year, a.type FROM project.semesters_subjects ss JOIN project.enrolled_semesters es ON es.id = ss.enrolled_semesters_id JOIN project.users u ON u.id = es.user_id JOIN project.subjects s ON s.id = ss.subjects_id JOIN project.active_semesters a ON a.id = es.semester_id LEFT JOIN project.passed_subjects ps ON ps.enrolled_id = ss.id WHERE ss.professor_id = 4 ORDER BY s.name, u.surname;
- Системот ги групира редовите по предмет и ја прикажува табелата со студент, индекс, предмет, семестар и тековна оценка. Студентите без оценка се прикажани со ознака дека сè уште не се оценети.
- Професорот по желба филтрира по предмет или пребарува по индекс на студент.
Забелешки
- Условот ss.professor_id = 4 е и проверка на овластување: професорот ги добива само студентите на своите предмети, бидејќи филтрирањето се врши во самата база, а не во апликацијата.
- Во моделот semesters_subjects нема директна врска кон студентот, па студентот се добива преку enrolled_semesters.user_id.
Note:
See TracWiki
for help on using the wiki.
