= Use-case UC0010 - Администратор - Управување со книги = '''Иницирачки актер:''' Администратор '''Други актери:''' Нема == Опис == Администраторот може да ги прегледува постоечките книги, да додава нови книги, да ги ажурира податоците за постоечките книги и да ги брише книгите. Може да ги менува насловот, ISBN, описот, годината на издавање, цената, количината на залиха и корицата. Книгите можат да бидат поврзани со соодветни автори, жанрови, категории и расположенија. При бришење, системот проверува дали книгата е поврзана со постоечки нарачки и спречува бришење доколку книгата е дел од една или повеќе нарачки. == Сценарио == 1. Администраторот ја отвора страницата за управување со книги. 2. Системот ги прикажува постоечките книги. {{{ SELECT kniga_id, naslov, isbn, godina_izdavanje, cena, kolicina_na_zaliha FROM project.knigi ORDER BY naslov; }}} 3. Администраторот внесува податоци за нова книга. {{{ INSERT INTO project.knigi (naslov, isbn, opis, korica_url, godina_izdavanje, kolicina_na_zaliha, cena) VALUES ('Nova kniga', '9781234567890', 'Opis na nova kniga', 'https://example.com/korica.jpg', 2026, 10, 750); }}} 4. Системот ја зачувува новата книга во базата на податоци. 5. Администраторот може да ги измени податоците за постоечка книга. {{{ UPDATE project.knigi SET cena = 800, kolicina_na_zaliha = 15 WHERE isbn = '9781234567890'; }}} 6. Системот ги зачувува направените промени. 7. Администраторот може да ја поврзе книгата со соодветен автор. {{{ INSERT INTO project.napisana_od (kniga_id, avtor_id) SELECT k.kniga_id, 1 FROM project.knigi k WHERE k.isbn = '9781234567890'; }}} 8. Администраторот може да ја поврзе книгата со соодветен жанр. {{{ INSERT INTO project.ima_zhanr (kniga_id, zhanr_id) SELECT k.kniga_id, 1 FROM project.knigi k WHERE k.isbn = '9781234567890'; }}} 9. Администраторот може да ја поврзе книгата со соодветна категорија. {{{ INSERT INTO project.ima_kategorija (kniga_id, kategorija_id) SELECT k.kniga_id, 1 FROM project.knigi k WHERE k.isbn = '9781234567890'; }}} 10. Администраторот може да ја поврзе книгата со соодветно расположение. {{{ INSERT INTO project.povrzana_so (kniga_id, raspolozenie_id) SELECT k.kniga_id, 1 FROM project.knigi k WHERE k.isbn = '9781234567890'; }}} 11. Системот ги зачувува врските на книгата со авторот, жанрот, категоријата и расположението. 12. Администраторот избира постоечка книга и ја избира опцијата за бришење. 13. Системот проверува дали книгата е поврзана со постоечки нарачки. {{{ SELECT COUNT(*) FROM project.sodrzi WHERE kniga_id = 1; }}} 14. Доколку книгата е поврзана со една или повеќе нарачки, системот не дозволува нејзино бришење и прикажува порака дека книгата не може да се избрише бидејќи е дел од постоечки нарачки. 15. Доколку книгата не е поврзана со постоечки нарачки, системот ги отстранува нејзините поврзувања со омилени, автори, жанрови, категории и расположенија. {{{ DELETE FROM project.omileni WHERE kniga_id = 1; DELETE FROM project.napisana_od WHERE kniga_id = 1; DELETE FROM project.ima_zhanr WHERE kniga_id = 1; DELETE FROM project.ima_kategorija WHERE kniga_id = 1; DELETE FROM project.povrzana_so WHERE kniga_id = 1; }}} 16. Системот ја брише книгата од базата на податоци. {{{ DELETE FROM project.knigi WHERE kniga_id = 1; }}}