| Version 2 (modified by , 2 weeks ago) ( diff ) |
|---|
UC006 - Приказ на положени предмети
Иницијален актер: Студент
Други актери: -
Студентот сака да го види своето уверение за положени испити: сите предмети кои ги положил, со оценка, датум, професор, семестар и кредити, како и вкупниот број кредити и просечната оценка.
Сценарио
- Студентот избира Испити од менито.
- Системот ги презема сите положени предмети на студентот. Патеката до студентот оди преку запишаниот семестар, бидејќи во моделот semesters_subjects не содржи директна врска кон студентот.
SELECT s.code, s.name AS subject, s.awarded_credits, ps.grade, ps.date_passed, p.name || ' ' || p.surname AS professor, a.year, a.type FROM project.passed_subjects ps JOIN project.semesters_subjects ss ON ss.id = ps.enrolled_id JOIN project.enrolled_semesters es ON es.id = ss.enrolled_semesters_id JOIN project.subjects s ON s.id = ss.subjects_id JOIN project.users p ON p.id = ss.professor_id JOIN project.active_semesters a ON a.id = es.semester_id WHERE es.user_id = 1 ORDER BY ps.date_passed;
- Системот го пресметува просекот и вкупните кредити. Бидејќи grade е набројувачки тип (enum), вредноста прво се претвора во текст, па во цел број за да може да се пресмета просек.
SELECT round(avg(ps.grade::text::int), 2) AS average_grade, sum(s.awarded_credits) AS total_credits FROM project.passed_subjects ps JOIN project.semesters_subjects ss ON ss.id = ps.enrolled_id JOIN project.enrolled_semesters es ON es.id = ss.enrolled_semesters_id JOIN project.subjects s ON s.id = ss.subjects_id WHERE es.user_id = 1;
- Системот ја прикажува табелата со положените предмети и, под неа, просекот и вкупните кредити.
- Студентот по желба избира Преземи PDF, со што се преминува на UC008.
Забелешки
- Врската меѓу semesters_subjects и passed_subjects е 1:1, обезбедена со UNIQUE врз passed_subjects.enrolled_id, па еден предмет во еден семестар може да има најмногу една оценка.
- Ако студентот го слушал истиот предмет во повеќе семестри, секое слушање е посебен ред во semesters_subjects, па се гледа и во кој семестар е положен.
Note:
See TracWiki
for help on using the wiki.
