Changes between Initial Version and Version 1 of UseCase0007


Ignore:
Timestamp:
09/20/26 17:51:41 (10 days ago)
Author:
223306
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase0007

    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
     86
     87LEFT JOIN project.ima_zhanr iz
     88    ON k.kniga_id = iz.kniga_id
     89LEFT JOIN project.preferira_zhanr pz
     90    ON iz.zhanr_id = pz.zhanr_id
     91    AND pz.korisnik_id = 1
     92
     93LEFT JOIN project.ima_kategorija ik
     94    ON k.kniga_id = ik.kniga_id
     95LEFT JOIN project.preferira_kategorija pk
     96    ON ik.kategorija_id = pk.kategorija_id
     97    AND pk.korisnik_id = 1
     98
     99LEFT JOIN project.povrzana_so ps
     100    ON k.kniga_id = ps.kniga_id
     101LEFT JOIN project.izbira_raspolozenie ir
     102    ON ps.raspolozenie_id = ir.raspolozenie_id
     103    AND ir.korisnik_id = 1
     104
     105WHERE pz.korisnik_id IS NOT NULL
     106   OR pk.korisnik_id IS NOT NULL
     107   OR ir.korisnik_id IS NOT NULL
     108
     109ORDER BY k.naslov;
     110}}}
     111
     1129. Купувачот ги добива книгите што одговараат на неговите преференции и избрани расположенија.