Changes between Initial Version and Version 1 of RelationalModel


Ignore:
Timestamp:
04/19/26 23:24:21 (13 days ago)
Author:
231073
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v1 v1  
     1== Релациски модел
     2
     3=== ЕР Дијаграм
     4
     5
     6=== Дополнителен опис и објаснување
     7
     8Од ентитетот **User** произлегуваат **Member**, **Librarian**, и **Admin**. Го избравме овој пристап за да избегнеме дуплирање на податоците и да се овозможи сите корисници да делат заеднички атрибути додека пак специфичните ги чуваме во посебни табели.
     9
     10Направивме разлика и помеѓу **Book** и **BookCopy**, бидејќи една книга може да има повеќе копии, со кои што функционира целиот систем, тие се физичките примероци со кои се управува со позајмување и достапност. Исто така секоја копија од самата книга има свој статус (пр. позајмена, достапна...).
     11
     12Имаме посебни табели за нашите M:N релации како што се **Book_Author**, **Book_Genre**, **Category_Book**, **Event_Book** и **Event_Book_Authon**. Нашиот систем го дизајниравме да поддржува книги со повеќе автори, книги со повеќе жанрови/категории и настани кои ги поврзавме со повеќе книги и автори, не ги ограничуваме на само една книга или автор.
     13
     14=== Ентитети за настани
     15
     16Делот за настани е подетално моделиран и вклучува **Event** и **EventReservation** ентитети. Притоа, **Event** дополнително е поврзан со **Book**, **Librarian** и **Author**, а додека пак **EventReservation** е поврзан со **Member**. Ова овозможува реални сценарија како промоција на книга, средба со автор, резервирање на седишта за посакуван настан и слично.
     17
     18=== Логови
     19
     20Имаме дел и за следење на активности на корисникот со помош на **Logs**, моделот содржи повеќе log табели како **SearchLog**, **BookViewLog**, **AuthorLog** и **GenreLog**. Со ова овозможуваме анализа на однесувањето на корисниците и следење на нивните пребарувања и интереси од што произлегува потенцијална имплементација на препораки за корисниците.
     21
     22=== Позајмување и резервација
     23
     24Делот за позајмување и резервација на книги го имплементираме преку **LoanHistory** кој поврзува **BookCopy**, **Member** и **Librarian**. Содржи информации за рокови, враќање и казни. Самите резервации се одвоени во **Reservations** што овозможува резервација без да се позајми книгата веднаш и подобра контрола врз достапноста на одредена копија на книгата. Казните или ентитетот **Fines** овозможува управување со финансиските казни на еден корисник и е поврзан со **Notifications**.
     25
     26=== Членства и плаќања
     27
     28Делот за членства и плаќања ги содржи ентитетите **MembershipPlan**, **Membership** и **Payment**. Имаме различни типови членства и претплати кои се ограничени временски (месечни, полугодишни и годишни), исто така ги следиме и плаќањата на корисникот.
     29
     30=== Нотификации
     31
     32Нотификациите ги имплементиравме преку ентитетот **Notifications** кој е поврзан со **Member**, **Payment** и **Fines** (со посебна табела **Fines_Notifications**) за можност за една казна да генерира повеќе нотификации (пр. за доцнење при враќање на книга). Исто така е поврзан и со **Reservation** (пр. за известување кога книга е достапна).