wiki:ERModel

Version 7 (modified by 226026, 3 weeks ago) ( diff )

--

ER Дијаграм

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

Ентитети

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

Релации

  • IS_MODERATED_BY(N:M) - релација помеѓу TOPIC_THREAD и MODERATOR. Ни кажува кои се модератори на соодветниот TOPIC_THREAD.
  • IS_CHILD_TO(1:N) - релација помеѓу TOPIC_THREAD и TOPIC_THREAD. Ни опишува како се разделува општ топик на поспецифички топици.
  • CONTAINS(1:N) - релација помеѓу TOPIC_THREAD и DISCUSSION_THREAD. Ни ги претставува дискусиите започнатите во топикот.
  • BELONGS_TO(1:N) - релацијата помеѓу PROJECT_THREAD и TOPIC_THREAD. Ни кажува кои топици се започнатите во соодветниот проект.
  • REPLIES(1:N) - релација помеѓу DISCUSSION_THREAD и DISCUSSION_THREAD. Ни кажува кои дискусии се произлегле од соодветна дискусија.
  • ASSIGNED_TO(N:M) - релација помеѓу THREAD и TAG. Ни кажува кои се таговите на соодветниот thread.
  • CREATES(1:N) - релација помеѓу MODERATOR и TAG. Ни кажува кои тагови ги креирал соодветниот модератор.
  • BLACKLISTED_BY(1:N) - релација помеѓу MODERATOR и BLACKLISTED_USER. Ни кажува кој модератор го ставил кој корисник на 'blacklist'.
  • BLACKLISTED_FROM(1:N) - релација помеѓу THREAD и BLACKLISTED_USER. Ни кажува во кој theads е "blacklisted" корисникот.
  • REFERS_TO(1:N) - релација помеѓу USER и BLACKLISTED_USER. Ни кажува на кој корисник се однесува соодветниот запис во BLACKLISTED_USER.
  • FOR_MISCONDUCT(1:N) - релација помеѓу THREAD и REPORT. Ни кажува во кој и на кој thread правилата се прекршиле.
  • 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_involvment_at - датум, задолжителен.
      • Ended_involment_at - датум, опционален.
  • DEFINED_BY(N:M) - релација помеѓу CUSTOM_ROLE и PERMISSIONS. Ни кажува кој пермисии ги опфаќа соодветната улога.
  • CONSTRUCTS(N:M) - релација помеѓу CHANNEL и DEVELOPER. Ни кажува кој програмер го креирал соодветниот канал.
  • SEND_MESSAGE_IN(N:M) - релација помеѓу CHANNEL и DEVELOPER. Ни претставува кој програмер испратил порака во соодветниот канал.
    • Атрибути
      • Timestamp - датум, задолжителен.
      • Msg_txt - текстуален, задолжителен.
  • IS_ASSIGNED(N:M) - релација помеѓу CUSTOM_ROLE и DEVELOPER. Ни кажува кој улоги ги поседува соодветниот програмер.

Историјат

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

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.