| Version 1 (modified by , 10 days ago) ( diff ) |
|---|
Use-case UC0005 - Персонализирани препораки за книги
Иницирачки актер: Купувач
Други актери: Нема
Опис:
Најавениот купувач може да добие персонализирани препораки за книги врз основа на неговите преферирани жанрови, категории и избрани расположенија.
Сценарио
- Купувачот ја отвора страницата со персонализирани препораки.
- Системот ги пронаоѓа преферираните жанрови на најавениот купувач.
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;
- Системот ги пронаоѓа книгите што одговараат на преферираните жанрови.
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;
- Системот ги пронаоѓа преферираните категории на купувачот.
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;
- Системот ги пронаоѓа книгите што одговараат на преферираните категории.
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;
- Системот ги пронаоѓа избраните расположенија на купувачот.
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;
- Системот ги пронаоѓа книгите што одговараат на избраните расположенија.
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;
- Системот ги комбинира жанровите, категориите и расположенијата и ги прикажува персонализираните препораки.
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;
- Купувачот ги прегледува добиените персонализирани препораки.
Note:
See TracWiki
for help on using the wiki.
