| | 1 | = Use-case 0006 Implementation - Управување со омилени книги = |
| | 2 | |
| | 3 | '''Иницирачки актер:''' Купувач |
| | 4 | |
| | 5 | '''Други актери:''' Нема |
| | 6 | |
| | 7 | == Опис == |
| | 8 | |
| | 9 | Најавениот купувач може да додава книги во својата листа на омилени книги, да ја прегледува листата со зачувани омилени книги и да отстранува книги од неа. Омилените книги се зачувуваат во базата на податоци и остануваат достапни и при следно најавување на корисникот. |
| | 10 | |
| | 11 | == Сценарио == |
| | 12 | |
| | 13 | 1. Најавениот купувач отвора страница со детали за избрана книга. На страницата се прикажуваат информациите за книгата и можност за додавање на книгата во омилени. |
| | 14 | |
| | 15 | [[Image(UseCase0006_1.png, width=800)]] |
| | 16 | |
| | 17 | 2. Корисникот ја додава избраната книга во своите омилени. Системот го идентификува најавениот корисник и ја зачувува врската помеѓу корисникот и книгата во табелата `project.omileni`. |
| | 18 | |
| | 19 | За додавање на книгата во омилени се користи следната SQL наредба: |
| | 20 | |
| | 21 | {{{ |
| | 22 | #!sql |
| | 23 | INSERT INTO project.omileni |
| | 24 | (korisnik_id, kniga_id, datum_dodavanje) |
| | 25 | VALUES (%s, %s, CURRENT_DATE) |
| | 26 | ON CONFLICT (korisnik_id, kniga_id) DO NOTHING; |
| | 27 | }}} |
| | 28 | |
| | 29 | Со `ON CONFLICT DO NOTHING` се спречува повторно додавање на истата книга во омилените книги на истиот корисник. |
| | 30 | |
| | 31 | [[Image(UseCase0006_2.png, width=800)]] |
| | 32 | |
| | 33 | 3. Корисникот ја отвора страницата „Омилени“. Системот ги презема омилените книги само за моментално најавениот корисник. |
| | 34 | |
| | 35 | За прикажување на омилените книги се користи следната SQL наредба: |
| | 36 | |
| | 37 | {{{ |
| | 38 | #!sql |
| | 39 | SELECT |
| | 40 | k.kniga_id, |
| | 41 | k.naslov, |
| | 42 | k.cena, |
| | 43 | k.opis, |
| | 44 | k.godina_izdavanje |
| | 45 | FROM project.omileni o |
| | 46 | JOIN project.knigi k |
| | 47 | ON o.kniga_id = k.kniga_id |
| | 48 | WHERE o.korisnik_id = %s |
| | 49 | ORDER BY o.datum_dodavanje DESC; |
| | 50 | }}} |
| | 51 | |
| | 52 | 4. Системот ја прикажува листата со омилените книги на корисникот. |
| | 53 | |
| | 54 | [[Image(UseCase0006_3.png, width=800)]] |
| | 55 | |
| | 56 | 5. Корисникот може да избере „Отстрани од омилени“ за книга што повеќе не сака да биде зачувана во неговата листа. |
| | 57 | |
| | 58 | За отстранување на книгата од омилени се користи следната SQL наредба: |
| | 59 | |
| | 60 | {{{ |
| | 61 | #!sql |
| | 62 | DELETE FROM project.omileni |
| | 63 | WHERE korisnik_id = %s |
| | 64 | AND kniga_id = %s; |
| | 65 | }}} |
| | 66 | |
| | 67 | 6. По отстранувањето, системот повторно ја прикажува страницата „Омилени“, без отстранетата книга. |
| | 68 | |
| | 69 | [[Image(UseCase0006_4.png, width=800)]] |