| Version 2 (modified by , 2 weeks ago) ( diff ) |
|---|
UC008 - Генерирање и преземање на документ
Иницијален актер: Студент
Други актери: -
Студентот сака да побара документ, на пример уверение за положени испити или потврда за редовен студент, и да го преземе како PDF со своите реални податоци.
Сценарио
- Студентот избира Документи од менито.
- Системот ги презема достапните видови документи со нивната цена.
SELECT id, type, cost FROM project.documents ORDER BY type;
- Студентот избира вид документ и потврдува.
- Системот ја запишува врската меѓу студентот и документот. Доколку студентот веќе го побарал истиот документ, повторното барање не создава дупликат, бидејќи примарниот клуч е составен од двете колони.
INSERT INTO project.user_documents (user_id, document_id) VALUES (1, 1) ON CONFLICT (user_id, document_id) DO NOTHING;
- Системот го презема текстот на документот и податоците на студентот кои се вметнуваат во него.
SELECT d.type, d.body, d.cost, u.name, u.surname, u."index", u.embg, u.enrollment_year FROM project.documents d CROSS JOIN project.users u WHERE d.id = 1 AND u.id = 1;
- За уверение за положени испити, системот ги презема и положените предмети, како во UC006.
- Системот го генерира PDF документот и го испраќа на преземање.
- Студентот подоцна може да ги види сите претходно побарани документи.
SELECT d.type, d.cost FROM project.user_documents ud JOIN project.documents d ON d.id = ud.document_id WHERE ud.user_id = 1 ORDER BY d.type;
Забелешки
- Табелата user_documents е врска M:N меѓу users и documents, со составен примарен клуч (user_id, document_id).
- Цената се чува во documents, па измена на цената важи за сите идни барања.
Note:
See TracWiki
for help on using the wiki.
