funkcionalnosti in arhitektura aplikacije
4.2 Opis ER-diagrama
ER-diagram, prikazan na sliki 4.1, prikazuje entitete, atribute entitet in re-lacije med entitetami v podatkovni bazi naˇse aplikacije. Kot je razvidno, smo ustvarili pet entitet: Stranka(Customers),Projekt(Project),Naloga (Task) (ki je ˇsibka entiteta — to pomeni, da je ne moremo identificirati brez primarnega kljuˇca projekta),Uporabnik(User) inKomentar(Comment), ki je sicer vmesna entiteta, ki povezuje entiteti Naloga in Uporabnik.
Entitete so med seboj povezane s ˇstirimi relacijami:
• Ustvari (create) – povezuje entiteti Stranka s kardinalnostjo 1..1 in Projekt s kardinalnostjo 0..*, saj ena stranka lahko ustvari niˇc ali veˇc projektov.
• Je razdeljen (is divided) – povezuje entiteti Projekt s kardinalnostjo 1..1 in Naloga s ˇsibko kardinalnostjo (je odvisna od primarnega kljuˇca projekta) 1..*, saj se en projekt lahko razdeli na eno ali veˇc nalog.
• Vsebuje(contains) – povezuje entiteti Naloga s kardinalnostjo 1..1 in Komentar s kardinalnostjo 0..*, saj ima lahko ena naloga niˇc ali veˇc komentarjev.
• Lahko doda(can add) – povezuje entiteti Uporabnik s kardinalnostjo 1..1 in Komentar s kardinalnostjo 0..*, saj lahko en uporabnik doda niˇc ali veˇc komentarjev k nalogi, doloˇceni komentar je lahko napisan s strani toˇcno enega uporabnika.
Vsaka entiteta vsebuje atribute, spodaj bomo naˇsteli vse atribute pri posamezni entiteti in jih na kratko predstavili.
• Strankaima naslednje atribute:
– stranka id (customer id), predstavlja identifikator za iskanje zapi-sov v tabeli Stranka, ter je hkrati primarni kljuˇc in celo ˇstevilo (Integer).
– stranka ime (customer name), je besedilni zapis, ki hrani stran-kino ime.
– stranka priimek (customer surname), je besedilni zapis, ki hrani strankin priimek.
– stranka podjetje (customer company), je besedilni zapis, ki hrani ime strankinega podjetja.
– stranka geslo(customer password), je besedilni zapis, ki hrani ˇsifrirano vrednost strankinega gesla.
– stranka epoˇsta (customer email), je besedilni zapis, ki hrani stran-kin elektronski naslov.
• Projekt ima naslednje atribute:
– projekt id (project id), predstavlja identifikator za iskanje zapisov v tabeli Projekt ter je hkrati primarni kljuˇc in celo ˇstevilo (Inte-ger).
– datoteka ime (file name), je besedilni zapis, ki hrani ime datoteke (.zip), ki je shranjena na streˇzniku za doloˇcen projekt, ˇce jo stranka doda – ni obvezen zapis.
– datum prevzema (date of pickup), je datumski zapis, ki hrani da-tum oddaje projekta s strani stranke.
– skrajni rok (date deadline), je datumski zapis, ki hrani datum, do kdaj mora biti projekt konˇcan.
– projekt napredek (project progress), je celo ˇstevilo, ki hrani odsto-tek [0, 100] napredka projekta.
– projekt ime (project name), je besedilni zapis, ki hrani ime pro-jekta, ki ga izbere stranka.
– projekt tip (project type), je besedilni zapis, ki hrani vrsto pro-jekta, ki ga poljubno dodeli stranka, lahko ostane tudi prazen - ni obvezen zapis.
– projekt opis (project description), je besedilni zapis, ki hrani opis projekta, ki ga poda stranka.
– projekt selektor (project selector), je besedilni zapis, dolg natanko 16 znakov, ki preveri del URL-naslova, ki ga pridobimo pri HTTP metodi GET.
– projekt potrditev (project verificator), je besedilni zapis, dolg na-tanko 16 znakov, ki preveri preostali del URL-naslova, ki ga pri-dobimo pri HTTP metodi GET.
• Naloga ima naslednje atribute:
– naloga id (task id), predstavlja identifikator za iskanje zapisov v tabeli Naloga, ter je hkrati primarni kljuˇc in celo ˇstevilo (Integer).
– naloga ime (task name), je besedilni zapis, ki hrani ime naloge, ki ga poda tisti, ki kreira nalogo. Ponavadi je to vodja projekta.
– naloga dodeljenec (task assigned to), je celoˇstevilski zapis, ki vse-buje identifikator uporabnika, kateremu je ta naloga dodeljena.
– naloga dodelitelj (task assigned from), je celoˇstevilski zapis, ki vse-buje identifikator uporabnika, kateri je to nalogo dodelil drugemu uporabniku.
– naloga narejena (task done), je celoˇstevilski zapis, ki predstavlja, ali je naloga konˇcana (0 - ni konˇcana, 1 - konˇcana).
– naloga pomembnost (task importance), je celoˇstevilski zapis, ki predstavlja pomembnost naloge (0 urgentno, 1 pomembno, 2 -normalno).
– naloga status (task status), je celoˇstevilski zapis, ki predstavlja trenutni status naloge (0 - v ˇcakanju, 1 - v delu, 2 - narejena).
– naloga ure (task hours), je ˇcasovni zapis, ki hrani ˇcas, ki ga upo-rabnik porabi, da dokonˇca nalogo.
– naloga opis (task description), je besedilni zapis, ki hrani opis na-loge, ki ga poda tisti, ki ustvari nalogo, po navadi je to vodja projekta.
– naloga zaˇcetni datum (task start date), je datumski zapis, ki hrani datum, stvaritve naloge s strani projektnega vodje.
– naloga skrajni rok (task deadline), je datumski zapis, ki hrani da-tum, do kdaj mora biti projekt konˇcan.
– naloga datoteka (task file), je besedilni zapis, ki hrani ime dato-teke (.zip), ki je shranjena na streˇzniku za doloˇceno nalogo, ˇce jo projektni vodja doda – ni obvezen zapis.
– naloga selektor (task selector), je besedilni zapis dolg natanko 16 znakov, ki preveri del URL-naslova, ki ga pridobimo pri HTTP metodi GET.
– naloga potrditev (task verificator), je besedilni zapis dolg natanko 16 znakov, ki preveri preostali del URL-naslova, ki ga pridobimo pri HTTP metodi GET.
• Uporabnik ima naslednje atribute:
– uporabnik id (user id), predstavlja identifikator za iskanje zapisov v tabeli Uporabnik, ter je hkrati primarni kljuˇc in celo ˇstevilo (Integer).
– uporabnik ime (user name), je besedilni zapis, ki hrani uporabni-kovo ime.
– uporabnik priimek (user surname), je besedilni zapis, ki hrani upo-rabnikov priimek.
– uporabnik funkcija (user function), je celoˇstevilski zapis, ki pove vlogo uporabnika v podjetju (0 - grafiˇcni oblikovalec, 1 - progra-mer, 2 - vodja projektov, 3 - administrator).
– uporabnik geslo(user password), je besedilni zapis, ki hrani ˇsifrirano vrednost uporabnikovega gesla.
– uporabnik epoˇsta (user email), je besedilni zapis, ki hrani uporab-nikov elektronski naslov.
• Komentar ima naslednja atributa:
– komentar id (comment id), predstavlja identifikator za iskanje za-pisov v tabeli Komentar, ter je hkrati primarni kljuˇc in celo ˇstevilo (Integer).
– komentar besedilo (comment text), je besedilni zapis, ki hrani upo-rabnikov komentar pri nalogi.
Slika 4.1: ER-diagram aplikacije