Momenteel ben ik bezig een voetbal(statistieken) site te maken. Ik ben hier al een tijdje mee bezig en het vorderd gestaag, en ik vind het tijd geworden om wat commentaar te krijgen op wat ik tot nu toe gedaan heb.

GUI
Allereerst, de GUI (Graphical User Interface). Aangezien ik nog niet alles in XHTML en CSS heb staan, zullen jullie het moeten doen met wat screenshots. Ik zou graag willen weten wat jullie vinden van onder andere het kleurgebruik, positionering en algemene indruk. De 4 screenshots:
klik #1
klik #2
klik #3
meest recente versie
De vierde afbeelding bevat nog een layer onder de footer, dit is een layer die bijvoorbeeld in de linker- of rechterbalk gepositioneerd kan worden.

Ik snap dat er nog vrij weinig content op de site te vinden is, maar dit komt later nog. Momenteel is elk commentaar op wat ik tot nu toe heb zeer welkom.

Data model
Natuurlijk hoort er een database achter een systeem als dit. Ik heb deze al ontworpen, volgens mij klopt 'ie aardig (qua normalisatie etc.). Voor het gemak heb ik even een schemaatje gemaakt: klik!
De veldtypes heb ik hier weggelaten (behalve bij Enumerated). Volgens mij zijn de types in orde, id's zijn INT, date(time) DATE(TIME) en verder nog vanzelfsprekende velden als title (VARCHAR) en content (TEXT).
Het gaat mij dus meer om het relationele gedeelte. Ook elk commentaar is hier welkom.

Het is een beetje lang verhaal geworden, maar ik hoop dat ik wat (beargumenteerde) commentaren binnenkrijg, zodat ik er wat mee kan. Voor een overzicht van het project zelf, check het eerste project op m'n site: klik!
Bvd!
Voor dat ik begin: als je verwacht dat je site veel bekeken word denormaliseer de boel, normalisatie is imho ouwe meuk van vroeger.

Je ontwerp:
De 2e prefereer ik. Waarom, omdat je je niet veel verschillende kleuren gebruikt.

Bij de andere heb je groen en blauw gebruikt. Ik vind dat verloopje met dat code achtige font(de header) niks. De site moet meer spreken vind ik. Doe een beetje inspiratie op bij andere foe-bal statestieken sites, kan je een hoop uithalen.
Op http://www.defencemechanism.com/color/ is een handig tooltje voor kleurgebruik. Ik gebruik het vaak, gewoon omdat het lekker makkelijk is.

Succes!
Normaliseren heeft niets met de UI interface te maken, puur met de database. Aan je reactie te horen weet je dus totaal niet waarover je spreekt. Natuurlijk moet je normaliseren!

Over die lay-out: begin eens opnieuw, dit spreekt echt niet aan...
Ik heb niet je hele schema bekeken, maar ik zie dat je bij de competities aangeeft wat voor type een club is. Een club is altijd OF een nationaal elftal, OF een clubteam. Deze informatie zet je dus bij het team.

Een status zou ik ook een tabel van maken, dus niet met ENUM werken daar. Je hebt nu "gestaakt", "afgelast", "uitgesteld". Je database wordt sneller en kleiner op het moment dat je dit koppelt via een andere tabel. Misschien gebeurt er ook ooit iets waar je geen rekening mee gehouden hebt. Dit is dan ook eenvoudig toe te voegen.

Ook formats zou ik echt in een aparte tabel droppen, en een koppeltabel maken. De competitie "champions league" heeft zowel een competitie als knockoutfase, en ook nog verschillende pouls. Dit zou je ook in je datamodel moeten verwerken.

Kortom: Loop je hele datamodel nog eens door, zorg dat de juiste gegevens in de juiste tabel staan, probeer redundantie te voorkomen, door dan maar wat meer tabellen te maken, maar alleen een id opslaan (en opzoeken) is sneller dan de hele naam elke keer opslaan. (In jou gevallen de ENUM velden)

Qua GUI, moet je echt nog wel wat aan doen. Zorg ervoor dat eruitspringt dat het over voetbal gaat, zorg voor een goed en duidelijk kleurgebruik, en ook dat het niet te druk wordt.
Ik zal enkel over het datamodel iets vertellen omdat ik niet zoveel van design ken.

1) Bij events lijkt het mij overbodig om nog een clubid in te vullen als je toch al een spelerid hebt, welke maar bij 1 club hoort (of ik snap iets niet van voetbal dat een andere club rode kaart zou kunnen krijgen bv.)

2) je tabel competitions snap ik niet helemaal. er wordt gelust merk ik, maar ik denk niet dat het helemaal genormaliseerd is. (graag wat meer uitleg aub)

3) nogal verwarrend dat je voor competitionid en countryid beide de naam 'cid' gebruikt, hier zal je hoogstwaarschijnlijk fouten mee maken ooit.

voor de rest mooi model ;)
huig schreef op 05.06.2008 21:41
Voor dat ik begin: als je verwacht dat je site veel bekeken word denormaliseer de boel, normalisatie is imho ouwe meuk van vroeger.
Inderdaad, vroeguh liepen er nog mensen met kennis en kunde rond...

Hoeveel problemen wil je hebben? Wanneer je niet gaat normaliseren, ga dan ook geen database gebruiken, dat wordt dan toch niks. Of is een snelle corrupte database handiger dan een (mogelijk) iets langzamere die wél werkt?
Heb je dat datamodel met een proggie gemaakt of gewoon in photoshop? Ik zoek nog een mooi tooltje daarvoor. Verder, het datamodel ziet er goed uit en er aan te zien dat je er genoeg kennis van hebt dus daar zul je niet zomaar op stuk lopen, de layout vind ik echter niet echt mooi te veel gradient en een beetje saai. Probeer eens een wat modernere site te maken of laten maken, zelf ben ik ook niet zo'n designer dus ik laat dat doen :)
Als ik zo naar het geheel kijk krijg ik de indruk dat je meer een coder bent dan een designer. Ik mag je stijl wel hoe je projecten aanpakt, alleen hier en daar klopt er nog iets niet.

Design is zo te zien niet echt je sterkste punt. Doe het dan op de manier zoals heel veel mensen het doen: beter goed gejat dan slecht verzonnen. Oftwel ga niet opnieuw het wiel uitvinden. Kijk naar andere sites. Kijk hoe die het doen.

Nog een aanmerking op je 'portfolio' website, ik weet niet of jij het zo noemt ;). Maar bepaalde zinnen kunnen echt niet. Kijk ze nog even na, of gooi ze in de Engelse grammatica controle :)

Verder goed bezig! Probeer voor jezelf het design niveau omhoog te schroeven dan kom je er wel :)
Hipska schreef op 05.06.2008 22:21
1) Bij events lijkt het mij overbodig om nog een clubid in te vullen als je toch al een spelerid hebt, welke maar bij 1 club hoort (of ik snap iets niet van voetbal dat een andere club rode kaart zou kunnen krijgen bv.)
Deels snap je het misschien niet, een speler kan namelijk naast zijn gewone club ook in een nationaal elftal zitten. Daarnaast kan een speler getransferd worden, maar je wil je data nog wel heel houden, dus daar zul je toch iets op moeten bedenken...
@Jonathan: maar het id van de match staat er dan toch ook al bij? via daar weet je welke club het was en waar die speler toen bij hoorde.

Ik zie dat je niet rekening houdt met transfers idd (tenzij die teamid bij events daarvoor bedoeld was)
Jonathan schreef op 05.06.2008 21:58
Normaliseren heeft niets met de UI interface te maken, puur met de database. Aan je reactie te horen weet je dus totaal niet waarover je spreekt. Natuurlijk moet je normaliseren!

Over die lay-out: begin eens opnieuw, dit spreekt echt niet aan...

Jonathan, ga is even lezen... Tuurlijk weet ik dat normaliseren niks te maken heeft met de GUI, maar agirre begon er zelf over. Bovendien had ik het erover of hij een enorme site gaat maken en dan moet je zeker denormaliseren. Heb je het Twitter verhaal gehoord?
http://fox.wikis.com/wc.dll?Wiki~SpecificReasonsToDenormalize~SoftwareEng
http://mjtsai.com/blog/2008/05/22/denormalize-to-scale/
http://www.sqlteam.com/article/denormalize-for-performance
http://www.slideshare.net/al3x/scaling-twitter-railsconf-2007/
(lees vooral de laatste maar even, de slide van de makers van twitter over hoe ze de boel hebben geoptimaliseerd)
Beste jonathan, stop dus gelijk met oordelen en wacht daarmee tot je meer ervaring hebt, maar hier leer je ook weer van;-).

Reageren