Changes between Version 2 and Version 3 of RelationalModel


Ignore:
Timestamp:
04/23/26 00:16:38 (10 days ago)
Author:
233088
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v2 v3  
    1 = Релационен модел
     1Табелите role и privilegii служат за дефинирање на сите достапни улоги и привилегии во системот, додека **role_user и role_privilegii** ги чуваат доделените улоги на корисниците и привилегиите на улогите. Овој пристап е избран наместо директно доделување привилегии на корисници со цел да се постигне флексибилност и скалабилност. Со ова, една улога може лесно да се додели на повеќе корисници, а промена на привилегии се прави централизирано, без потреба од измени кај секој корисник поединечно.
    22
    3 == ЕР Дијаграм
     3Во повеќе табели (како b**ank_user, klient, vraboten, smetka, karticka, filijala**) се користат атрибутите **valid_from и valid_to**. Овој сегмент овозможува чување на историски податоци, односно наместо бришење или препишување на записи, се следи нивната временска важност. Ова е особено важно во банкарски систем каде што е потребно да се знае кога одреден податок бил валиден, на пример промена на филијала или статус на корисник.
    44
    5 [[Image(ERDijagram.png, 1400px)]]
     5Во табелата **kursna_lista** имаме два странски клучеви **(valuta_od_id и valuta_do_id)** кои се поврзуваат со **табелата valuta**. Ова е специфичен модел бидејќи се работи за самореференцирачка врска, каде една табела се поврзува сама со себе преку друга табела. Со ова се моделира реален девизен курс помеѓу две валути. Дополнително, воведено е уникатно ограничување (datum, valuta_od, valuta_do) за да се спречи дуплирање на курсеви за ист ден.
     6
     7Табелите **transakcija и nalog** се раздвоени со цел да се направи јасна разлика помеѓу иницирање и извршување на финансиска операција. Налогот претставува барање или инструкција за трансакција, додека трансакцијата е реално извршената операција. Врската е поставена така што трансакцијата може да постои и без налог **(nullable foreign key)**, со што се овозможува поддршка и за автоматски или системски генерирани трансакции.
     8
     9Во табелата** rata_kredit** се чуваат ратите за кредит, при што секоја рата може да биде поврзана со конкретна transakcija. Овој модел овозможува да се следи не само планот на отплата, туку и реалната исплата на секоја рата. Доколку трансакцијата е null, тоа значи дека ратата сè уште не е платена. Овој пристап овозможува детална евиденција и контрола на кредитите.
     10
     11Табелите **telefon, email и adresa** се издвоени како посебни ентитети наместо да бидат дел од клиентот или вработениот. Причината за ова е што еден клиент или вработен може да има повеќе контакт информации. Со ова се избегнува редундантност и се овозможува поголема флексибилност во моделот.
     12
     13Табелата **potpisnik** служи за поврзување на **klient и dogovor** со цел да се овозможи еден договор да има повеќе потписници. Наместо директна врска, се користи посредна табела за да се моделира many-to-many релација. Ова е важно во реални сценарија каде повеќе лица можат да бидат вклучени во ист договор (на пример ко-корисници на кредит).