Tema je veoma zanimljiva.
Mislim da bi trebali da se u početku složimo oko nekakve osnovne terminologije i naziva.
Lakše ćemo kasnije svi pratiti i dograđivati.
Citat:
Zidar:
Sta se trazi od projektanta
-------------------------
1. da predlozi strukturu tabela koja omogucuje da se prati ligasko takmicenje, prema prilozenom opisu.
2. Na osnovu datog opisa, projektant treba da identifikuje najvaznija pravila i da pokaze kako baza podrzava ta pravila. Na
primer: pravilo 'tim moze u jednom kolu odigrati najvise jednu utakmicu' podrazno je sa UNIQUE constraint na tabeli tblKola
po poljima (KoloID, timID)
Posto sam ja samo dobrovoljni direktor lige, ne razumem se u projektovanje baza podataka ja prema tome ne znam sta su
pravila, pa vam ih ne mogu izlistati. Mogu da vam opisujem kako mi to radimo pesice, a prjektant neka vidi sta ce.
1.1 Trebalo bi prvo da definišemo nazive i kolone prostih tabela, tj. šifarnika ili registara.
Ovdje nam može najviše pomoći sam direktor i u startu ćemo smanjiti moguća "vozanja",
u smislu "zaboravio sam da vam kažem da mi vodimo evidenciju i o ...". Ovakva situacija je u stvari i najčešća u praksi.
Neke od njih su već očigledne, predložiću neke nazive, a vi dodajte ili ih promijenite. Važno je da probamo da svi koristimo kasnije iste nazive.
Neka direktor (on je ipak glavni

) na kraju odluči koji su nazivi i za njega prihvatljivi i intuitivni (pošto je on laik za eventualne skraćenice...), a mi da se držimo toga.
I odmah pitanje za njega: neka dobro pogleda ove i ranije šifarnike i razmisli o svakom šifarniku posebno.
Potrebno je da se prisjeti kakvi su još osnovni podaci potrebni, bilo gdje da se trebaju pojaviti, recimo na spiskovima za sudije, na internetu, treba li evidencija
o roditeljima, školama ili još o nečemu što do sada nije spomenuo. Znači, kao da utakmice još nisu počele, samo pravimo
liste sportova, timova, igrača... Treba li voditi evidenciju o zaduživanju opreme (lopte, dresovi, palice...), zbog čega bi bilo
neophodno napraviti i šifarnik sportske opreme (stvari).
Što se tiče popunjavanja tabela nekakvim podacima, bilo bi dobro da nam direktor da već gotove spiskove timova, igrača... Tako će njemu to biti najpribližnije i lako prepoznatljivo, a mi ostali možemo koristiti iste nazive, da ne izmišljamo.
-----------------------------------------------------------------------------------------------------------
SPORTOVI (ovaj šifarnik možda nije ni potreban, ali možda nije ni loše zbog preglednosti)
sportID, NAZIV (ovdje može biti unesen i samo naziv jednog sporta, recimo FUDBAL, ako pratimo samo taj sport)
-----------------------------------------------------------------------------------------------------------
TIMOVI (prost spisak svih timova iz svih sportova, sa osnovnim generalijama)
timID, ŠIFRA, NAZIV, ADRESA, MJESTO, EMAIL, WEB_ADRESA, SLIKA, TRENER, POMOĆNIK, SPORT, DIVIZIJA, SPONZOR
pojašnjenje samo za neke kolone:
SLIKA - zbog objavljivanja na webu možda bi trebalo da se može prikazati i amblem tima ili grupna slika
TRENER, POMOĆNIK - prezime i ime trenera i pomoćnika trenera (možda napraviti i poseban šifarnik trenera i pomoćnika
sa generalijama?)
SPORT - naziv sporta u kome se tim takmiči (unosi se NAZIV iz tabele SPORTOVI)
DIVIZIJA - starosna kategorija kojoj tim pripada
SPONZOR - kratki naziv glavnog sponzora tog tima (SNAZIV iz tabele SPONZORI)
-----------------------------------------------------------------------------------------------------------
IGRAČI (spisak svih igrača koji učestvuju, iz svih timova i sportova)
igracID, JMBG, PREZIME, IME, POL, DATUM_ROĐENJA, ADRESA, MJESTO, EMAIL, TELEFON
pojašnjenje samo za neke kolone:
DATUM_ROĐENJA - odavde se može izvući godina zbog svrstavanja u starosnu kategoriju (DIVIZIJA)
napomena: ovdje ne treba stavljati kolonu kojem klubu pripada, jer se to u sezoni može mijenjati
-----------------------------------------------------------------------------------------------------------
TERENI (spisak svih terena, za sve vrste sportova, na kojima će se odigravati utakmice)
terenID, NAZIV, MJESTO, VRSTA
pojašnjenje samo za neke kolone:
VRSTA - travnati, beton, led (da se samo zna za koji sport se može koristiti)
-----------------------------------------------------------------------------------------------------------
SUDIJE (spisak svih sudija koje će suditi, za sve sportove)
sudijaID, JMBG, PREZIME, IME, POL, DATUM_ROĐENJA, ADRESA, MJESTO, EMAIL, TELEFON, SPORT
-----------------------------------------------------------------------------------------------------------
SPONZORI (prost spisak svih sponzora za sve sportove, sa osnovnim generalijama)
sponzorID, SNAZIV, NAZIV, ADRESA, MJESTO, EMAIL, WEB_ADRESA, SLIKA, TEKST
pojašnjenje samo za neke kolone:
SNAZIV - kratki naziv ili skraćenica sponzora
NAZIV - puni naziv sponzora
-----------------------------------------------------------------------------------------------------------
TRENERI (spisak svih trenera i pomoćnika, za sve timove)
trenerID, JMBG, PREZIME, IME, POL, DATUM_ROĐENJA, ADRESA, MJESTO, EMAIL, TELEFON
-----------------------------------------------------------------------------------------------------------
Dodajte još šifarnika, za koje mislite da su potrebni.
Generalno za sve tabele, svaku od onih ID kolona bi možda bilo dobro definisati tako da nije samo broj, već možda skraćeni
naziv tima, sponzora..., skraćeno prezime_ime igrača, sudije..., naravno da je jednoznačno. Ovo samo zbog nekakve
preglednosti onog ko unosi u tabele sa relacijama (na primjer u tabelu TIMOVI_IGRAČI).
Ovdje se nisam zadržavao na detaljima kao što su UNIQUE kolone, indeksi, koje kolone smiju biti nepopunjene (recimo SLIKA)...
1.2 Kad se dogovorimo o šifarnicima, onda možemo praviti tabele u kojima će biti određene relacije.
Daću samo jedan primjer:
-----------------------------------------------------------------------------------------------------------
TIMOVI_IGRAČI (ovo je tabela koja povezuje šifre timova (timID) i šifre igrača (igracID), sa datumima od kada do kada je
određeni igrač u timu. Datumi rješavaju problematiku praćenja mogućih transfera igrača. Na primjer, za određeni tim se upiše od kada (DATUM_OD) je u njegovom sastavu neki igrač. Ako bude potrebe da taj igrač iz bilo kog razloga u sezoni promijeni tim, onda se prvo upiše DATUM_DO kada je bio u tom timu, pa se u ovoj tabeli doda novi red sa šifrom novog tima, šifrom igrača i DATUM_OD kada je u tom novom timu. Tako se može dobiti statistika o transferima igrača u toku sezone (ili više sezona), koliko je utakmica odigrao u nekom timu itd... Kad se budu dijelile diplome može se upitom dobiti lista svih igrača koji su igrali za određeni tim, pa makar i u jednoj utakmici i time doprinijeli uspjehu.)
timigracID, timID, igracID, DATUM_OD, DATUM_DO, BROJ_NA_DRESU, OCENA_KVALITETA_IGRACA
pojašnjenje samo za neke kolone:
OCENA_KVALITETA_IGRACA - stavljam u ovu tabelu jer igrač može imati visoku ocjenu za fudbal, ako se nalazi u tom
timu, ali kad se zbog nedostatka igrača ili želje prebaci u tim za hokej gdje je totalni početnik, onda dobija drugu nižu ocjenu. Ovo je važno zato da bi se mogla pratiti ujednačenost snaga timova (sumiranjem ocjena igrača dobija se nekakva ocjena tima - mogući favoriti).
-----------------------------------------------------------------------------------------------------------
Zatim bi trebalo definisati tabelu sezona i utakmica u određenom sportu, rezultati, kartoni...
Znači, posao za projektante, uz eventualne konsultacije sa direktorom o detaljima u pojedinim sportovima,
uz pretpostavku da smo dobro osmislili šifarnike i da neće biti potrebe da ih mijenjamo (odnosno što manje).
Nadam se da nisam zakasnio sa ovim prijedlozima, mnogi su vjerovatno dosta već odmakli u svom radu, pa se nemojte ljutiti.