Open jaanos opened 6 years ago
Zdaj izgleda struktura baze v redu. Opozoril bi samo na glavne ključe v tabelah picture_challenge
in user_challenge
. Glede na to, da se nanju ne sklicuješ, stolpca ID
ne potrebuješ. Glavni ključ naj bo pri picture_challenge
sestavljen iz CHALLENGEID
in ROUND
(slednji stolpec ni referenca, tako da bi v ER diagramu tej tabeli ustrezala šibka entiteta), pri user_challenge
pa USERID
in CHALLENGEID
(obe sta referenci, tako da je to relacija v ER diagramu). Na ta način zagotoviš, da se za en krog v izzivu lahko pojavi samo ena slika ter da se lahko pri enem izzivu vsak uporabnik pojavi samo enkrat (lahko pa tudi pustiš stolpca ID
, pa na omenjene stolpce daš omejitev UNIQUE
).
Tvoj diagram ne prikazuje tistega, kar naj bi prikazoval ER diagram - izgleda mi bolj kot kak diagram poteka. Tudi vse entitete, ki jih imaš, niso potrebne - smiselno bi bilo ohraniti naslednje.
Ostale informacije naj bodo v relacijah.
Obe relaciji sta tipa več na več - na ER diagramu torej zanje ne narišeš puščic, v bazi pa bosta predstavljeni kot tabeli z ustreznimi relacijami na tabele entitet. Sicer pa, ko imaš na ER diagramu puščice (tj., omejitev tipa "največ enkrat v relaciji"), se jih vedno riše v smeri proti relaciji.
Tako ne potrebuješ posebej tabel z rezultati, saj jih lahko izpelješ iz ostalih tabel (morda bi pa koristil pogled z rezultati izzivov, ki ga izpelješ iz tabele zadnje relacije tako, da vzameš samo tiste vnose, kjer se število opravljenih krogov ujema s skupnim številom krogov). Posebej to pomeni tudi, da število tabel (in njihova struktura) ni odvisno od podatkov v bazi - tako ne boš potreboval novih tabel za vsak izziv.