= Актуелна верзија == Дијаграм [[Image(Kraen_ER_Dijagram_verzija_9.png)]] == Податочни побарувања === Ентитети ''**User**''– ентитет кој дефинира корисници. * Примарен клуч: userID, нумерички идентификатор ''Атрибути'': • fullName – текстуален податок, опционален • password – текстуален податок, задолжителен • username – текстуален податок, задолжителен **''Quiz''** – ентитет кој дефинира квизови • Примарен клуч: quizID, нумерички идентификатор ''Атрибути'': • quizName – текстуален податок, задолжителен • categoryID - изведен атрибут од Category, задолжителен • tournamentPhaseID - изведен атрибут од Tournament Phase, опционален **''Selection Question''** - изведен ентитет од Question, кој дефинира прашања со селектирање. • Примарен клуч: questionID, наследен од Question. **''Choice''** - ентитет кој дефинира понудените избори за одговарање. • Примарен клуч: choiceID, нумерички идентификатор ''Атрибути'': • isCorrect - булов податочен тип, задолжителен • choiceText – текстуален податок, задолжителен • questionID - изведен атрибут од Question, задолжителен ''**Attempt**'' - ентитет кој дефинира направени обиди. • Примарен клуч: attemptID, нумерички идентификатор ''Атрибути'': • userID - изведен атрибут од User, задолжителен • attemptDate - атрибут од тип Date, задолжителен ''**Category**'' - ентитет кој дефинира категорија. • Примарен клуч: categoryID, нумерички идентификатор ''Атрибути'': • name – текстуален податок, задолжителен • subjectID - изведен атрибут од Subject, задолжителен **''Subject''** - ентитет кој дефинира предмет(тема). • Примарен клуч: subjectID, нумерички идентификатор ''Атрибути'': • name – текстуален податок, задолжителен ''**Result**'' - ентитет кој го дефинира резултатот. • Примарен клуч: resultID, нумерички идентификатор ''Атрибути'': • points - нумерички атрибут, задолжителен • attemptID - изведен атрибут од Attempt, задолжителен ''**Administrator**'' – изведен ентитет од User кој дефинира администратор на апликацијата. • Примарен клуч: userID, наследен од User. **''Quiz Taker''** – изведен ентитет од User кој дефинира корисник што решава квизови. • Примарен клуч: userID, наследен од User. ''Атрибути'': • tournamentID - изведен атрибут од Tournament, опционален • tournamentPhaseID - изведен атрибут од Tournament Phase, опционален ''**Moderator**'' – изведен ентитет од User кој дефинира модератор • Примарен клуч: userID, наследен од User. ''**Tournament Organizer**'' – изведен слаб ентитет од User кој дефинира организатор на турнири • Примарен клуч: userID, наследен од User. ''Атрибути'': • tournamentID - изведен атрибут од Tournament, задолжителен ''**Selected Choice**'' – слаб ентитет од Choice кој дефинира селектиран одговор • Примарен клуч: choiceID, наследен од Choice. ''**Badge**'' - ентитет кој дефинира значка (badge). • Примарен клуч: badgeID, нумерички идентификатор ''Атрибути'': • badgeName – текстуален податок, задолжителен • decription – текстуален податок, задолжителен • resultID - изведен атрибут од Result, задолжителен ''**Tournament**'' - ентитет кој чува податоци за турнир (натпреварување) • Примарен клуч: tournamentID, нумерички идентификатор ''Атрибути'': • tournamentName – текстуален податок, задолжителен ''**Medal**'' - ентитет кој дефинира медали. • Примарен клуч: medalID, нумерички идентификатор ''Атрибути'': • medalName – текстуален податок, задолжителен • description - текстуален податок, задолжителен • userID - изведен атрибут од User, задолжителен ''**Text Question**'' - изведен ентитет од Question, кој дефинира прашања со текстуален одговор. • Примарен клуч: questionID, наследен од Question. ''**Hint**'' - ентитет кој дефинира помош при одговарање на прашање. • Примарен клуч: hintID, нумерички идентификатор ''Атрибути'': • hintText – текстуален податок, задолжителен • questionID - изведен атрибут од Question, задолжителен ''**Question**'' – ентитет кој дефинира прашања. • Примарен клуч: questionID, нумерички идентификатор ''Атрибути'': • questionText – текстуален податок, задолжителен • quizID - изведен атрибут од Quiz, задолжителен ''**Tournament Phase**'' – ентитет кој дефинира фаза на турнир. • Примарен клуч: tournamentPhaseID, нумерички идентификатор ''Атрибути'': • tournamentID – изведен атрибут од Tournament, задолжителен === Релации • ''**is part of**'' - 1:N релација помеѓу Selection Question и Choice (со тотално учество од страна на ентитетот Choice) која опишува дека едно прашање со селектирање содржи повеќе понудени одговори, додека еден понуден одговор се содржи во едно прашање со селектирање. • ''**starts**'' – 1:N релација помеѓу Quiz Taker и Attempt (со тотално учество од страна на ентитетот Attempt) која опишува дека еден решавач на квизови може да започне повеќе обиди, додека еден обид е започнат од еден решавач. • ''**is created for**'' - 1:N релација помеѓу Category и Quiz (со тотално учество од страна на ентитетот Quiz) која опишува дека од една категорија може да се состават повеќе квизови, додека еден квиз припаѓа на една категорија. • ''**testing the knowledge of**'' - 1:N релација помеѓу Category и User која опишува дека во една категорија своето знаење можат да го тестираат повеќе корисници, додека еден корисник може да го тестира своето знаење во една категорија. • ''**is selected**'' – 1:1 слаба релација помеѓу Choice и Selected Choice (со тотално учество од страна на ентитетот Selected Choice) која опишува дека еден избор е селектиран одговор, исто така еден селектиран одговор е избор. • ''**tries**''- 1:N релација помеѓу Quiz и Attempt (со тотално учество од страна на ентитетот Attempt) која опишува дека на еден квиз може да постојат повеќе обиди, додека еден обид припаѓа на еден квиз. • ''**is part of**'' – 1:N релација помеѓу Subject и Category (со тотално учество од страна на ентитетот Category) која опишува дека еден предмет (тема) содржи повеќе категории, додека една категорија припаѓа на еден предмет (тема). • ''**grades**''- 1:1 релација помеѓу Result и Attempt (со тотално учество од страна на ентитетот Result) која опишува дека еден резултат оценува даден обид, а еден обид е оценет од еден резултат. • ''**manages**'' – 1:N релација помеѓу Administrator и User која опишува дека еден Администратор менаџира повеќе корисници, додека само еден корисник може да биде Администратор. • ''**is given for**'' - 1:N релација помеѓу Result и Badge (со тотално учество од страна на ентитетот Badge) која опишува дека за еден резултат може да се добијат повеќе значки (беџови), додека една значка(беџ) може да се добие за еден резултат. • ''**is part of**'' – N:N релација помеѓу Quiz и Tournament која опишува дека еден квиз е дел од повеќе турнири, додека во еден турнир се решаваат повеќе квизови. • ''**hosting**'' – N:N релација помеѓу Tournament и Tournament Organizer (со тотално учество од страна на ентитетот Tournament Organizer) која опишува дека еден турнир е организиран од повеќе организатори, додека еден организатор може да организира повеќе турнири. • ''**hosting tournaments**'' – слаба релација 1:N помеѓу Moderator и Tournament Organizer (со тотално учество од страна на ентитетот Tournament Organizer) која опишува дека еден модератор може да биде организатор на повеќе турнири, додека еден организатор е еден модератор. • ''**is part of**'' – N:N релација помеѓу Quiz и Question (со тотално учество од страна на ентитетот Question) која опишува дека еден квиз содржи повеќе прашања, додека едно прашање се наоѓа во повеќе квизови. • ''**is for**'' – 1:N релација помеѓу Tournament и Medal (со тотално учество од страна на ентитетот Medal) која опишува дека на еден турнир може да се добијат повеќе медали, додека еден медал се добива на еден турнир. • ''**is awarded to**'' – N:N релација помеѓу Quiz Taker и Medal која опишува дека еден решавач на квизови може да добие повеќе медали, додека еден медал му се доделува на еден решавач. • ''**is for**'' - 1:1 релација помеѓу Question и Hint (со тотално учество од страна на ентитетот Hint) која опишува дека за едно прашање имаме една помош, а една помош е достапна за едно прашање. • ''**participates in**'' - N:N релација помеѓу Quiz Taker и Tournament која опишува дека еден решавач може да учествува на повеќе турнири, а на еден турнир може да учествуваат повеќе решавачи. • ''**participates in**'' - N:N релација помеѓу Quiz Taker и Tournament Phase која опишува дека еден решавач може да учествува на повеќе фази во турнирот, а во една фаза од турнирот може да учествуваат повеќе решавачи. • ''**is part of**'' - 1:N релација помеѓу Tournament и Tournament Phase (со тотално учество од страна на ентитетот Tournament Phase) која опишува дека еден турнир може да има повеќе фази, а една фаза се однесува на еден турнир. • ''**is part of**'' - 1:N релација помеѓу Tournament Phase и Quiz која опишува дека во една фаза може да има повеќе квизови, додека еден квиз припаѓа на една фаза. == Историјат * [attachment:Poceten_ER_Dijagram.png Верзија 1] - Почетен ER дијаграм со ентитети, атрибути и релации. * [attachment:AktuelenER.png Верзија 2] - По препорака од страна на професорот, изведовме повеќе ентитети од ентитетот User и креиравме ентитет за турнир (натпреварување). * [attachment:Kraen_ER_Dijagram_verzija_9.png Верзија 3] - По препорака од страна на професорот, направени се дополнителни промени околу организацијата на турнирот.