Changes between Version 30 and Version 31 of ERModel


Ignore:
Timestamp:
09/24/25 19:19:23 (3 weeks ago)
Author:
225144
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ERModel

    v30 v31  
    11 == ER Дијаграм
    2 [[Image(ER_BUILD_BOARD_v5.2.png)]]
     2[[Image(ER_BUILD_BOARD_v5.3.png)]]
    33== Податочни побарувања
    44=== Ентитети
     
    1818* Ентитет **DEVELOPER** - преклопувачка специјализација, со делумно учество, од **USER**. Ентитетов се однесува на корисниците, кои се истовремено и развивачи на софтвер.
    1919    * Кандидат клучеви: исто како и ентитетот USER и овај ентитет се идентификува со примарниот вештачки клуч Id.
     20
    2021* Ентитет **PROJECT_OWNER** - преклопувачка специјализација, со делумно учество, од **DEVELOPER**. Ентитетов се однесува на развивачите на софтвер, кои поседуваат проекти.
    2122    * Кандидат клучеви: исто како и ентитетот DEVELOPER и овај ентитет се идентификува со примарниот вештачки клуч **Id**.
     23
    2224* Ентитет **MODERATOR** - преклопувачка специјализација, со делумно учество, од **USER**. Ентитетов се однесува на корисниците, кои истовремено се и модератори на threads.
    2325    * Кандидат клучеви: исто како и ентитетот **USER** и овај ентитет се идентификува со примарниот вештачки клуч **Id**.
     26
    2427* Ентитет **TAG** - претставува податок (лабела) која може да се назначи на даден **THREAD**. Служи за логичко групирање на threads. 
    2528    * Кандидат клучеви: Name, како податок уникат за секој таг. Истиот го избравме за примарен клуч на ентитетов.
    2629        * Атрибути:
    2730                * Name - текстуален податок,задолжителен.   
     31
    2832* Ентитет **THREAD** - генерализација на сите можни водови на threads. Ги содржи сличните податоци присутни кај поединечните видови.
    2933    * Кандидат клучеви: бидејќи најмално супер-клуч множество би се состоело од сите атрибути на ентитет, за примарен клуч избравме вештачки клуч Id.
     
    3236        * Id - нумерички податок, задолжителен.
    3337        * Created_at - датум, задолжителен.
     38
    3439* Ентитет **ЕMBEDDABLE** - дисјунктна специјализација, со целосно учество, од **THREAD**. Ги претставува сите threads кои можат да се вгензудваат.
     40
    3541* Ентитет **TOPIC_THREAD** - дисјунктна специјализација, со целосно учество, од ЕMBEDDABLE. Ентитетов се однесува на сите threads кој се топици и ги содржи податоците специфични за нив.
    3642    * Кандидат клучеви: исто како и ентитетот ЕMBEDDABLE и овај ентитет се идентификува со примарниот,вештачки клуч Id.
     
    3844        * Title - текстуален податок,задолжителен.
    3945        * Guidlines - текстуален,multivalued податок,опционален.
     46
    4047* Ентитет **DISCUSSION_THREAD** - дисјунктна специјализација, со целосно учество, од **ЕMBEDDABLE**. Ентитетов се однесува на сите threads кој се дискусии и ги содржи податоците специфични за нив.
    4148    * Кандидат клучеви: исто како и ентитетот **ЕMBEDDABLE** и овај ентитет се идентификува со примарниот,вештачки клуч **Id**.
     49
    4250* Ентитет **PROJECT_THREAD** - дисјунктна специјализација, со целосно учество, од **THREAD.** Ентитетов се однесува на сите threads кој се дискусии и ги содржи податоците специфични за нив.
    4351    * Кандидат клучеви: исто како и ентитетот **THREAD** и овај ентитет се идентификува со примарниот,вештачки клуч **Id**.
     
    4553        * Repo_url - текстуален податок, опционален.
    4654        * Title - уникатен текстуален податок, задолжителен.
     55
     56* Слаб Ентитет **DEVELOPER_ASSOCIATED_WITH_PROJECT** - записи за корисници кои се дел од проект(и.
     57 * Кандидат клучеви: целосно идентификуван преку релациите **IN_PROJECT** и **ABOUT_DEV** заедно со парцијалниот клуч **Started_at**
     58    * Атрибути:
     59        * Started_at - датум, задолжителен.
     60        * Ended_at - датум, опционален.
     61
    4762* Ентитет **BLACKLISTED_USER** - податоци за тоа на кои корисници му е забранет пристапот во кои **TOPIC_THREAD** , од кои модератор.
    4863    * Кандидат клучеви: сурогат клуч id
     
    5267        * End_date - датум, опционален.
    5368        * Reason - текстуален податок,опционален.
     69
    5470* Ентитет **SUBMISSION** - генерализација за пријавите, кои ги испраќаат корисниците.
    5571    * Кандидат клучеви: Бидејќи најмално супер-клуч множество би се состоело од сите атрибути на ентитет, за примарен клуч избравме вештачки клуч **Id**.
     
    5975       * Description - текстуален, опционален.
    6076       * Status - текстуален, задолжителен.
     77
    6178* Ентитет **REPORT** - дисјунктна специјализација, со целосно учество од **SUBMISSION**. Ги претставува сите пријави од корисниците.
    6279  * Кандидат клучеви: исто како и ентитетот SUBMISSION и овoј ентитет се идентификува со примарниот вештачки клуч **Id**.
     80
    6381* Слаб eнтитет **FEEDBACK** - целосно идентификуван преку **SUBMITTED_FOR**.Претставува повратен одговор на дадено барање.
    6482 * Атрибути:
    6583        * Submission_type - текстуален,задолжителен.
    6684        * Created_at - датум,задолжителен
    67         * Description - текстуален,опционален     
     85        * Description - текстуален,опционален   
     86 
    6887* Ентитет **PROJECT_REQUEST** - дисјунктна специјализација, со целосно учество од **SUBMISSION**.Претставува барање за учество на даден корисниците во даден проект.
    6988  * Кандидат клучеви: исто како и ентитетот **SUBMISSION** и овoј ентитет се идентификува со примарниот вештачки клуч **Id**.
     89
    7090* Ентитет **CHANNEL** - податоци за каналите во проектите.
    7191    * Кандидат клучеви: сурогат клуч Id
     
    7494        * Name - текстуален, задолжителен.
    7595        * Description - текстуален, опционален.
     96
     97* Слаб Ентитет **MESSAGE** - претставува порака пратена во канал.
     98    * Кандидат клучеви: целосно идентификуван преку релациите **SENT_IN**, **SENT_BY** и парцијалниот клуч **Sent_at**
     99    * Атрибути:
     100        * Sent_at - датум, задолжителен
     101        * Content - текстуален, задолжителен.
     102
    76103* Ентитет **PERMISSIONS** - претставува ентите за дадена пермисија (дозвола). Пополнет со предефинирани вредности (''READ'',''WRITE'',''CREATE'',''DELETE'').
    77104  * Кандидат клучеви: овој ентитет е целосно идентификуван преку атрибутот **Name**
    78105  * Атрибути:
    79106    * Name - текстуален податок, задолжителен.
     107
    80108* Ентитет **PROJECT_ROLE** - претставува улога назначена на корисник, во даден проект.
    81109 * Кандидат клучеви: овој ентитет е целосно идентификуван преку сурогат клучот **id**
     
    85113    * Override_type - текстуален податок со предефинирани вредности (''INCLUDE'',''EXCLUDE''), задолжителен
    86114       * Забелешка: Атрибутот **Override_type** влијае на интерпретацијата на релацијата **FOR_RESOURCE**.
     115
    87116* Слаб Ентитет **ROLE_PERMISSIONS** - означува кој пермисии ги има дадена улога. Целосно се идентификува преку релациите **FOR_ROLE**,**FOR_PERMISSION**.
    88117
     
    105134* **VALID_IN**(1:N) - релација помеѓу **PROJECT_THREAD** и **PROJECT_ROLE**. Ни кажува во кој проект е валидна соодветната улога.
    106135* **HAS**(1:N) - релација помеѓу **PROJECT_THREAD** и **CHANNEL**. Ни кажува во кој проект припаѓа соодветниот канал.
    107 * **ASSOCIATED_WITH**(N:M) - релација помеѓу **PROJECT_THREAD** и **DEVELOPER**. Ни кажува во кој проекти учествувал/учествува соодветниот програмер.
    108     * Атрибути:
    109         * Started_at - датум, задолжителен.
    110         * Ended_at - датум, опционален.
    111      * Забелешка: Според **Ended_at** се знае дали **DEVELOPER** е активно вклучен во дадениот проект.
    112136* **CONSTRUCTS**(1:M) - релација помеѓу **CHANNEL** и **DEVELOPER**. Ни кажува кој програмер го креирал соодветниот канал.
    113 * **SEND_MESSAGE_IN**(N:M) - релација помеѓу **CHANNEL** и **DEVELOPER**. Ни претставува кој програмер испратил порака во соодветниот канал.
    114     * Атрибути
    115         * Sent_at - датум, задолжителен.
    116         * Content - текстуален, задолжителен.
     137* **SENT_IN** (1:M)- релација помеѓу **CHANNEL** и **MESSAGE**. Ни кажува во кој канал е пратена дадена порака.
     138* **SENT_BY** (1:M) - релација помеѓу **DEVELOPER** и **MESSAGE**. Ни кажува кој ја испратил пораката.
     139* **IN_PROJECT**(1:N) - релација помеѓу **PROJECT_THREAD** и **DEVELOPER_ASSOCIATED_WITH_PROJECT**. Ни кажува за кој проект се однесува записот.
     140* **ABOUT_DEV** (1:N) - релација помеѓу **DEVELOPER** и **DEVELOPER_ASSOCIATED_WITH_PROJECT**. Ни кажува за кој developer се однесува записот.
    117141* **IS_ASSIGNED**(N:M) - релација помеѓу **PROJECT_ROLE** и **DEVELOPER**. Ни кажува кој улоги ги поседува соодветниот програмер.
    118142* **SUBMITTED_FOR**(1:1) - релација помеѓу **SUBMISSION** и **FEEDBACK**. Претставува кој feedback се однесува на даден submission.