Changes between Initial Version and Version 1 of RelationalModel


Ignore:
Timestamp:
04/20/26 00:00:57 (13 days ago)
Author:
231166
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v1 v1  
     1
     2== Relational diagram ==
     3
     4[[Image(RelationalModel-VidiDB.svg, width=800)]]
     5
     6Напомена: Оригиналниот модел во Visual Paradigm формат е прикачен на оваа страница: [attachment:RelationalModel-VidiDB.vpp RelationalModel-VidiDB.vpp]
     7
     8== Descriptive documentation and argumentation ==
     9
     10Во овој дел е детално објаснета логиката зад клучните сегменти на релациониот модел за системот Vidi.
     11
     12=== 1. Хиерархија на содржина (Content, Movie, Series, Season, Episode) ===
     13Моделот користи специјализација за менаџирање на различните типови содржина. Ентитетот `Content` ги чува заедничките атрибути (наслов, опис, рејтинг), додека `Movie` и `Series` се посебни табели поврзани со него.
     14 * За сериите е имплементирана дополнителна хиерархија `Series -> Season -> Episode`, што овозможува прецизно следење на епизодите и нивното времетраење преку ентитетот `Watchable`.
     15
     16=== 2. Систем за гледање и напредок Watchable, WatchHistory ===
     17За да избегнеме дуплирање на логиката за "филм" и "епизода", воведен е апстрактниот ентитет `Watchable`.
     18 * И `Movie` и `Episode` се поврзани со `Watchable`. Ова овозможува `WatchHistory` и `Watchlist` да се однесуваат на било кој медиумски елемент униформно, следејќи го процентот на изгледаност (`Progress_percentage`) без разлика на типот на содржината.
     19
     20=== 3. Претплати и пристап (Subscription, User_Subscription, Devices) ===
     21Моделот поддржува комплексен систем на претплати:
     22 * `Subscription` ги дефинира плановите (цена, квалитет, број на уреди).
     23 * `User_Subscription` е врска која го следи времетраењето на претплатата на корисникот и дали истата автоматски се обновува.
     24 * Табелата `Devices` е поврзана со претплатата за да се осигура дека корисникот не го надминува лимитот на дозволени уреди (`MaxDevices`) дефиниран во неговиот пакет.
     25
     26=== 4. Класификација и метаподатоци (Genre, Language, Artist) ===
     27За ефикасно пребарување, користени се "many-to-many" врски преку посреднички табели:
     28 * `Content_Genre` и `Content_Language` овозможуваат еден филм или серија да припаѓаат на повеќе жанрови и да бидат достапни на повеќе јазици.
     29 * `Artist_Content` го поврзува содржината со актерите и режисерите, каде преку `RoleType` во табелата `Artist` се дефинира нивната функција во проектот.
     30
     31=== 5. Интеракција со корисници (Rating, Review) ===
     32Системот ги раздвојува оценките (`Rating`) од текстуалните рецензии (`Review`). Ова овозможува корисникот да остави брза нумеричка оцена која лесно се агрегира за пресметување на просечен рејтинг, но и детално мислење со датум на објава.