wiki:ERModel

Version 19 (modified by 225144, 40 hours ago) ( diff )

--

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. Ги претставува сите пријави од корисниците.
    • Кандидат клучеви: исто како и ентитетот SUBMISSION и овoј ентитет се идентификува со примарниот вештачки клуч Id.
  • PROJECT_REQUEST - дисјунктна специјализација, со целосно учество од SUBMISSION.Претставува барање за учество на даден корисниците во даден проект.
  • Слаб ентитет CHANNEL - податоци за каналите во проектите.
    • Кандидат клучеви: парцијалниот клуч Name, целосно се идентификува преку идентификувачката релација со PROJECT_THREAD.
    • Атрибути:
      • Name - текстуален, задолжителен.
      • Description - текстуален, опционален.
  • Ентитет CUSTOM_ROLE - податоци за креирани улоги, кои се доделуваат на развивачите во конкретен проект.
    • Кандидат клучеви: парцијалниот клуч Name, целосно се идентификува преку идентификувачката релација со PROJECT_THREAD.
    • Атрибути:
      • Name - текстуален,задолжителен.
    • Description - текстуален,задолжителен.
  • Ентитет PERMISSIONS - податоци за пермисиите, кои се достапни во дефинирањето на улогите во пеодиенчните проекти.
    • Кандидат клучеви: Name, како податок уникат за секојa пермисија. Истиот го избравме за примарен клуч на ентитетов.
    • Атрибути:
      • Name - текстуален,задолжителен.
  • Ентитет SUBMISSION - генерализација за пријавите, кои ги испраќаат корисниците.
    • Кандидат клучеви: Бидејќи најмално супер-клуч множество би се состоело од сите атрибути на ентитет, за примарен клуч избравме вештачки клуч Id.
    • Атрибути:
      • Id - нумерички податок, задолжителен.
      • 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

Attachments (13)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.