wiki:ERModel

ER Дијаграм

Податочни побарувања

Ентитети

  • Ентитет USER - податоци за корсниците.
    • Кандидат клучеви: Username. Поради чести промени на атрибутот, за примерен клуч избравме вештачки клуч Id.
      • Атрибути:
        • Id - нумерички податок, задолжителен.
        • Username - текстуален податок,задолижетелен.
        • Description - текстуален податок,опционален.
        • Password - текстуален податок,задолжителен.
        • Register_date - текстуален податок,задолжителен.
        • Sex - текстуален податок,задолжителен.
        • Is_active - булов податок, задолжителен.
        • Email - текстуален податок, задолжителен.
        • Name - текстуален податок, задолжителен.
  • Ентитет DEVELOPER - преклопувачка специјализација, со делумно учество, од USER. Ентитетов се однесува на корисниците, кои се истовремено и развивачи на софтвер.
    • Кандидат клучеви: исто како и ентитетот USER и овај ентитет се идентификува со примарниот вештачки клуч Id.
  • Ентитет PROJECT_OWNER - преклопувачка специјализација, со делумно учество, од DEVELOPER. Ентитетов се однесува на развивачите на софтвер, кои поседуваат проекти.
    • Кандидат клучеви: исто како и ентитетот DEVELOPER и овај ентитет се идентификува со примарниот вештачки клуч Id.
  • Ентитет MODERATOR - преклопувачка специјализација, со делумно учество, од USER. Ентитетов се однесува на корисниците, кои истовремено се и модератори на threads.
    • Кандидат клучеви: исто како и ентитетот USER и овај ентитет се идентификува со примарниот вештачки клуч Id.
  • Ентитет TAG - податоци за можните тагови. Служат за групирање на thread.
    • Кандидат клучеви: Name, како податок уникат за секој таг. Истиот го избравме за примарен клуч на ентитетов.
      • Атрибути:
        • Name - текстуален податок,задолжителен.
  • Ентитет THREAD - генерализација на сите можни водови на threads. Ги содржи сличните податоци присутни кај поединечните видови.
    • Кандидат клучеви: бидејќи најмално супер-клуч множество би се состоело од сите атрибути на ентитет, за примарен клуч избравме вештачки клуч Id.
    • Атрибути:
      • Content - текстуален податок,опционален.
      • Id - нумерички податок, задолжителен.
      • Created_at - датум, задолжителен.
  • Ентитет ЕMBEDDABLE - дисјунктна специјализација, со целосно учество, од THREAD. Ги претставува сите threads кои можат да се вгензудваат.
  • Ентитет TOPIC_THREAD - дисјунктна специјализација, со целосно учество, од ЕMBEDDABLE. Ентитетов се однесува на сите threads кој се топици и ги содржи податоците специфични за нив.
    • Кандидат клучеви: исто како и ентитетот ЕMBEDDABLE и овај ентитет се идентификува со примарниот,вештачки клуч Id.
    • Атрибути:
      • Title - текстуален податок,задолжителен.
      • Guidlines - текстуален,multivalued податок,опционален.
  • Ентитет DISCUSSION_THREAD - дисјунктна специјализација, со целосно учество, од ЕMBEDDABLE. Ентитетов се однесува на сите threads кој се дискусии и ги содржи податоците специфични за нив.
    • Кандидат клучеви: исто како и ентитетот ЕMBEDDABLE и овај ентитет се идентификува со примарниот,вештачки клуч Id.
  • Ентитет PROJECT_THREAD - дисјунктна специјализација, со целосно учество, од THREAD. Ентитетов се однесува на сите threads кој се дискусии и ги содржи податоците специфични за нив.
    • Кандидат клучеви: исто како и ентитетот THREAD и овај ентитет се идентификува со примарниот,вештачки клуч Id.
    • Атрибути:
      • Repo_url - текстуален податок, опционален.
      • Title - уникатен текстуален податок, задолжителен.
  • Слаб ентитет BLACKLISTED_USER - податоци за тоа на кои корисници му е забранет пристапот во кои TOPIC_THREAD , од кои модератор.
    • Кандидат клучеви: парцијалнен клуч Start_date, но за целосно идентификување се користат идентификувачките релации со TOPIC_THREAD,MODERATOR и USER.
    • Атрибути:
      • Start_date - датум, задолжителен.
      • End_date - датум, опционален.
      • Reason - текстуален податок,опционален.
  • Ентитет REPORT - дисјунктна специјализација, со целосно учество од SUBMISSION. Ги претставува сите пријави од корисниците.
    • Кандидат клучеви: заради можноста да постојат повеќе извештаи, кои се однесуваат на истиот корсиник, за прекршувања на правилата на истиот thread, поднеси од страна на истиот корисник, одлучивме да генерираме вештачки парцијалнен клуч Id. За целосно идентификување на ентитетиве служат идентификувачките релации со TOPIC_THREAD и USER.
    • Атрибути:
      • Id - нумерички, задолжителен.
      • Created_at - датум, опционален.
      • Status - енумерирачки, задолжителен.
      • Description - текстуален, задолжителен.
  • PROJECT_REQUEST - дисјунктна специјализација, со целосно учество од SUBMISSION.Претставува барање за учество на даден корисниците во даден проект.
  • Слаб ентитет CHANNEL - податоци за каналите во проектите.
    • Кандидат клучеви: парцијалниот клуч Name, целосно се идентификува преку идентификувачката релација со PROJECT_THREAD.
    • Атрибути:
      • Name - текстуален, задолжителен.
      • Description - текстуален, опционален.
  • Ентитет CUSTOM_ROLE - податоци за креирани улоги, кои се доделуваат на развивачите во конкретен проект.
    • Кандидат клучеви: парцијалниот клуч Name, целосно се идентификува преку идентификувачката релација со PROJECT_THREAD.
    • Атрибути:
      • Name - текстуален,задолжителен.
    • Description - текстуален,задолжителен.
  • Ентитет PERMISSIONS - податоци за пермисиите, кои се достапни во дефинирањето на улогите во пеодиенчните проекти.
    • Кандидат клучеви: Name, како податок уникат за секојa пермисија. Истиот го избравме за примарен клуч на ентитетов.
    • Атрибути:
      • Name - текстуален,задолжителен.
  • Ентитет SUBMISSION - генерализација за пријавите, кои ги испраќаат корисниците.
    • Атрибути:
      • Created_at - датум,задолжителен.
      • Description - текстуален, опционален.
      • Status - текстуален, задолжителен.
  • Слаб eнтитет FEEDBACK - идентификуван преку SUBMITTED_FOR.Претставува повратен одговор на дадено барање.
    • Атрибути:
      • Submission_type - текстуален,задолжителен.
      • Created_at - датум,задолжителен
      • Description - текстуален,опционален

Релации

  • IS_MODERATED_BY(N:M) - релација помеѓу TOPIC_THREAD и MODERATOR. Ни кажува кои се модератори на соодветниот TOPIC_THREAD.
    • Aтрибути:
      • Started_at: датум,задолжителен.
  • ASSIGNED_TO(N:M) - релација помеѓу THREAD и TAG. Ни кажува кои се таговите на соодветниот thread.
  • CONTAINED_IN(1:N) - релација помеѓу DISCUSSION_THREAD и EMBDEDABLE_THREAD. Ни жажува во кој thread е вгнезден дадениот DISCUSSION_THREAD.
  • REFERENCED_BY(1:N) - релација помеѓу TOPIC_THREAD и PROJECT_THREAD. Ни кажува во кој PROJECT_THREAD е вгнезед дадениот TOPIC_THREAD.
  • CREATES(1:N) - релација помеѓу MODERATOR и TAG. Ни кажува кои тагови ги креирал соодветниот модератор.
  • BLACKLISTED_BY(1:N) - релација помеѓу MODERATOR и BLACKLISTED_USER. Ни кажува кој модератор го ставил кој корисник на 'blacklist'.
  • BLACKLISTED_FROM(1:N) - релација помеѓу TOPIC_THREAD и BLACKLISTED_USER. Ни кажува во кој топик е "blacklisted" корисникот.
  • REFERS_TO(1:N) - релација помеѓу USER и BLACKLISTED_USER. Ни кажува на кој корисник се однесува соодветниот запис во BLACKLISTED_USER.
  • FOR_MISCONDUCT(1:N) - релација помеѓу TOPIC_THREAD и REPORT. Ни кажува во кој и на кој топик правилата се прекршиле.
  • ABOUT(1:N) - релација помеѓу USER и REPORT. Ни кажува кој корисник е обвинет за прекршување на правилата.
  • SUBMITTED_BY(1:N) - релација помеѓу USER и REPORT. Ни кажува кој корисник го поднесол извештајот.
  • LIKES(N:M) - релација помеѓу USER и THREAD. Ни ги претставува сите threads, кој му се допаднале на корисникот.
  • SUBMITS(1:N) - релација помеѓу USER и PROJECT_REQUEST. Ни кажува кој корисник го поднел соодветното барање за учество.
  • RECIEVES(1:N) - релација помеѓу PROJECT_THREAD и PROJECT_REQUEST. Ни кажува за кој проект, корисникот го поднел соодветното барање за учество.
  • VALID_IN(1:N) - релација помеѓу PROJECT_THREAD и CUSTOM_ROLE. Ни кажува во кој проект е валидна соодветната улога.
  • HAS(1:N) - релација помеѓу PROJECT_THREAD и CHANNEL. Ни кажува во кој проект припаѓа соодветниот канал.
  • ASSOCIATED_WITH(N:M) - релација помеѓу PROJECT_THREAD и DEVELOPER. Ни кажува во кој проекти учествувал/учествува соодветниот програмер.
    • Атрибути:
      • Started_at - датум, задолжителен.
      • Ended_at - датум, опционален.
  • DEFINED_BY(N:M) - релација помеѓу CUSTOM_ROLE и PERMISSIONS. Ни кажува кој пермисии ги опфаќа соодветната улога.
  • CONSTRUCTS(N:M) - релација помеѓу CHANNEL и DEVELOPER. Ни кажува кој програмер го креирал соодветниот канал.
  • SEND_MESSAGE_IN(N:M) - релација помеѓу CHANNEL и DEVELOPER. Ни претставува кој програмер испратил порака во соодветниот канал.
    • Атрибути
      • Created_at - датум, задолжителен.
      • Content - текстуален, задолжителен.
  • IS_ASSIGNED(N:M) - релација помеѓу CUSTOM_ROLE и DEVELOPER. Ни кажува кој улоги ги поседува соодветниот програмер.
  • SUBMITTED_FOR(1:1) - релација помеѓу SUBMISSION и FEEDBACK. Претставува кој feedback се однесува на даден submission.
  • WRITTEN_BY(N:1) - релација помеѓу FEEDBACK и PROJECT_OWNER. Претставува кој го напишал дадениот feedback.

Историјат

ER дијаграм(v1.0) - ER_BUILD_BOARD_v1.xml
ER дијаграм(v2.0) - ER_BUILD_BOARD_v2.xml
ER дијаграм(v3.0) - ER_BUILD_BOARD_v3.xml

Last modified 9 days ago Last modified on 02/12/25 18:42:12

Attachments (8)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.