@emki11: Databasdesign handlar om att strukturera data i tabeller med vettiga relationer, eller på annat sätt ordna informationen som ligger till grund för hemsidan. Gällande sportresultat så kan man välja hur mycket eller lite information man ska spara, och på vilket sätt.
Lag och spelare (och kanske information om enskilda spelares karriär)
spelschema för respektive lag
turneringar (nationella ligor, internationella ligor och mästerskap)
resultat i respektive match
laguppställning i respektive match
matchhändelser (fri- och straffsparkar, hörnor, bollinnehav, gula och röda kort, byten mm)
En databas med relationer underlättar då man minimerar behovet av att spara samma data flera gånger, men samtidigt vill man inte låsa sig i sin databasdesign om man vill förändra den. Samtidigt kan det vara intressant att spara viss data dubbelt för att öka prestanda. Du vill kanske kunna presentera statistik, men för att hämta all statistik om exempelvis en spelare så krävs det att du varje gång sammanställer statistiken från befintlig data. För att slippa göra det varje gång någon vill ha statistik så kanske du även stoppar in en statistiktabell... Dock måste databasdesignen också vara skyddad mot fel som kan introduceras genom felaktig indata. Att resultat och matchhändelser säger en sak medan statistiktabellen säger något annat om uppdateringen av en eller flera tabeller inte fungerat som det är tänkt.
Det finns alltså mycket att vinna på att tänka efter före och designa databasen rätt från början. Att komma på att man missat vissa saker kan kräva rätt mycket merarbete i efterhand då det kanske krävs att man konverterar befintlig data innan ny programkod kan tas i bruk.
Abstraktion är viktigare ju större projekten blir för att fler ska kunna utveckla på det samtidigt.
Lageruppdelning är ofta en vettig väg att gå där man separerar en webbplats i följande lager:
- presentationslager - det som användarna ser
- logiklager - det som behandlar information från användare och databas
- databaslager - där informationen sparas
Tanken är också att separera så mycket programkod från presentation som möjligt och göra det möjligt att återanvända kod. Om ett fel uppstår i din kod så räcker det kanske med att du rättar felet på ett ställe, istället för att rätta det på samtliga sidor där informationen presenteras. Dessutom kan det många gånger vara enklare att utveckla i block, mer logiskt och smidigare att rulla ut nya versioner av webbplatsen med nya funktioner.