Changes between Initial Version and Version 1 of UseCase0005


Ignore:
Timestamp:
09/20/26 16:14:05 (10 days ago)
Author:
223306
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase0005

    v1 v1  
     1= Use-case UC0005 - Персонализирани препораки за книги =
     2
     3'''Иницирачки актер:''' Купувач
     4
     5'''Други актери:''' Нема
     6
     7'''Опис:'''
     8
     9Најавениот купувач може да добие персонализирани препораки за книги врз основа на неговите преферирани жанрови, категории и избрани расположенија.
     10
     11== Сценарио ==
     12
     131. Купувачот ја отвора страницата со персонализирани препораки.
     14
     152. Системот ги пронаоѓа преферираните жанрови на најавениот купувач.
     16
     17{{{
     18SELECT z.zhanr_id, z.naziv
     19FROM project.preferira_zhanr p
     20JOIN project.zhanrovi z ON p.zhanr_id = z.zhanr_id
     21WHERE p.korisnik_id = 1
     22ORDER BY z.zhanr_id;
     23}}}
     24
     253. Системот ги пронаоѓа книгите што одговараат на преферираните жанрови.
     26
     27{{{
     28SELECT DISTINCT k.kniga_id, k.naslov, k.cena
     29FROM project.knigi k
     30JOIN project.ima_zhanr iz ON k.kniga_id = iz.kniga_id
     31JOIN project.preferira_zhanr pz ON iz.zhanr_id = pz.zhanr_id
     32WHERE pz.korisnik_id = 1
     33ORDER BY k.naslov;
     34}}}
     35
     364. Системот ги пронаоѓа преферираните категории на купувачот.
     37
     38{{{
     39SELECT k.kategorija_id, k.naziv
     40FROM project.preferira_kategorija pk
     41JOIN project.kategorii k ON pk.kategorija_id = k.kategorija_id
     42WHERE pk.korisnik_id = 1
     43ORDER BY k.kategorija_id;
     44}}}
     45
     465. Системот ги пронаоѓа книгите што одговараат на преферираните категории.
     47
     48{{{
     49SELECT DISTINCT k.kniga_id, k.naslov, k.cena
     50FROM project.knigi k
     51JOIN project.ima_kategorija ik ON k.kniga_id = ik.kniga_id
     52JOIN project.preferira_kategorija pk ON ik.kategorija_id = pk.kategorija_id
     53WHERE pk.korisnik_id = 1
     54ORDER BY k.naslov;
     55}}}
     56
     576. Системот ги пронаоѓа избраните расположенија на купувачот.
     58
     59{{{
     60SELECT r.raspolozenie_id, r.naziv
     61FROM project.izbira_raspolozenie ir
     62JOIN project.raspolozenija r
     63    ON ir.raspolozenie_id = r.raspolozenie_id
     64WHERE ir.korisnik_id = 1
     65ORDER BY r.raspolozenie_id;
     66}}}
     67
     687. Системот ги пронаоѓа книгите што одговараат на избраните расположенија.
     69
     70{{{
     71SELECT DISTINCT k.kniga_id, k.naslov, k.cena
     72FROM project.knigi k
     73JOIN project.povrzana_so ps
     74    ON k.kniga_id = ps.kniga_id
     75JOIN project.izbira_raspolozenie ir
     76    ON ps.raspolozenie_id = ir.raspolozenie_id
     77WHERE ir.korisnik_id = 1
     78ORDER BY k.naslov;
     79}}}
     80
     818. Системот ги комбинира жанровите, категориите и расположенијата и ги прикажува персонализираните препораки.
     82
     83{{{
     84SELECT DISTINCT k.kniga_id, k.naslov, k.cena
     85FROM project.knigi k
     86LEFT JOIN project.ima_zhanr iz
     87    ON k.kniga_id = iz.kniga_id
     88LEFT JOIN project.preferira_zhanr pz
     89    ON iz.zhanr_id = pz.zhanr_id AND pz.korisnik_id = 1
     90LEFT JOIN project.ima_kategorija ik
     91    ON k.kniga_id = ik.kniga_id
     92LEFT JOIN project.preferira_kategorija pk
     93    ON ik.kategorija_id = pk.kategorija_id AND pk.korisnik_id = 1
     94LEFT JOIN project.povrzana_so ps
     95    ON k.kniga_id = ps.kniga_id
     96LEFT JOIN project.izbira_raspolozenie ir
     97    ON ps.raspolozenie_id = ir.raspolozenie_id AND ir.korisnik_id = 1
     98WHERE pz.korisnik_id IS NOT NULL
     99   OR pk.korisnik_id IS NOT NULL
     100   OR ir.korisnik_id IS NOT NULL
     101ORDER BY k.naslov;
     102}}}
     103
     1049. Купувачот ги прегледува добиените персонализирани препораки.