= Use-case UC0005 - Персонализирани препораки за книги = '''Иницирачки актер:''' Купувач '''Други актери:''' Нема '''Опис:''' Најавениот купувач може да добие персонализирани препораки за книги врз основа на неговите преферирани жанрови, категории и избрани расположенија. == Сценарио == 1. Купувачот ја отвора страницата со персонализирани препораки. 2. Системот ги пронаоѓа преферираните жанрови на најавениот купувач. {{{ SELECT z.zhanr_id, z.naziv FROM project.preferira_zhanr p JOIN project.zhanrovi z ON p.zhanr_id = z.zhanr_id WHERE p.korisnik_id = 1 ORDER BY z.zhanr_id; }}} 3. Системот ги пронаоѓа книгите што одговараат на преферираните жанрови. {{{ SELECT DISTINCT k.kniga_id, k.naslov, k.cena FROM project.knigi k JOIN project.ima_zhanr iz ON k.kniga_id = iz.kniga_id JOIN project.preferira_zhanr pz ON iz.zhanr_id = pz.zhanr_id WHERE pz.korisnik_id = 1 ORDER BY k.naslov; }}} 4. Системот ги пронаоѓа преферираните категории на купувачот. {{{ SELECT k.kategorija_id, k.naziv FROM project.preferira_kategorija pk JOIN project.kategorii k ON pk.kategorija_id = k.kategorija_id WHERE pk.korisnik_id = 1 ORDER BY k.kategorija_id; }}} 5. Системот ги пронаоѓа книгите што одговараат на преферираните категории. {{{ SELECT DISTINCT k.kniga_id, k.naslov, k.cena FROM project.knigi k JOIN project.ima_kategorija ik ON k.kniga_id = ik.kniga_id JOIN project.preferira_kategorija pk ON ik.kategorija_id = pk.kategorija_id WHERE pk.korisnik_id = 1 ORDER BY k.naslov; }}} 6. Системот ги пронаоѓа избраните расположенија на купувачот. {{{ SELECT r.raspolozenie_id, r.naziv FROM project.izbira_raspolozenie ir JOIN project.raspolozenija r ON ir.raspolozenie_id = r.raspolozenie_id WHERE ir.korisnik_id = 1 ORDER BY r.raspolozenie_id; }}} 7. Системот ги пронаоѓа книгите што одговараат на избраните расположенија. {{{ SELECT DISTINCT k.kniga_id, k.naslov, k.cena FROM project.knigi k JOIN project.povrzana_so ps ON k.kniga_id = ps.kniga_id JOIN project.izbira_raspolozenie ir ON ps.raspolozenie_id = ir.raspolozenie_id WHERE ir.korisnik_id = 1 ORDER BY k.naslov; }}} 8. Системот ги комбинира жанровите, категориите и расположенијата и ги прикажува персонализираните препораки. {{{ SELECT DISTINCT k.kniga_id, k.naslov, k.cena FROM project.knigi k LEFT JOIN project.ima_zhanr iz ON k.kniga_id = iz.kniga_id LEFT JOIN project.preferira_zhanr pz ON iz.zhanr_id = pz.zhanr_id AND pz.korisnik_id = 1 LEFT JOIN project.ima_kategorija ik ON k.kniga_id = ik.kniga_id LEFT JOIN project.preferira_kategorija pk ON ik.kategorija_id = pk.kategorija_id AND pk.korisnik_id = 1 LEFT JOIN project.povrzana_so ps ON k.kniga_id = ps.kniga_id LEFT JOIN project.izbira_raspolozenie ir ON ps.raspolozenie_id = ir.raspolozenie_id AND ir.korisnik_id = 1 WHERE pz.korisnik_id IS NOT NULL OR pk.korisnik_id IS NOT NULL OR ir.korisnik_id IS NOT NULL ORDER BY k.naslov; }}} 9. Купувачот ги прегледува добиените персонализирани препораки.