Avatar billede -sofus- Nybegynder
21. marts 2003 - 14:07 Der er 3 kommentarer og
1 løsning

Skidt database struktur ? eller bare slamkode ?

Jeg er ved at lave en database, hvor jeg har nogle Spillere som er på nogle hold som spiller nogle kampe.

Min database ser sådan ud:
T_Spillere -> Spiller_id|Spiller_navn|Spiller_Hold_ID
T_Hold    -> Hold_ID|Hold_Navn |Hold_Kode
T_Kampe    -> Kamp_ID|Kamp_Dato|Kamp_hold1|Kamp_hold2|Kamp_hold1_score|Kamp_hold2_score

Hvert hold har udover deres ID en Hold_kode, som bruges i kamp programet.

Når der er spillet nogle kampe for jeg outputtet:

Hold1 mod Hold2 : Score1 - Score2

Her kommer så den svære del. Jeg skal lave en oversigt som viser en liste med f.eks:

Hold AAA |3 vundne kampe | 2 tabte | samlet score | 15-10

Jeg sad og rodede med det igår, hvor jeg blev forslået at lave en anden database struktur, men kan ikke se en smartere måde at lave det på.
Avatar billede -sofus- Nybegynder
21. marts 2003 - 14:10 #1
Jeg var noget frem til koden:

SELECT Klan_navn, Count(Kamp_id) AS Antal_kampe, Sum(Kamp_klan1_score) AS Vudne_runder, Sum(Kamp_klan2_score) AS Tabte_runder
FROM T_Klaner, T_Kampe
WHERE kamp_klan1=Klan_kode OR kamp_klan2=Klan_kode
GROUP BY Klan_navn
ORDER BY vudne_runder DESC

Men den talte ikke helt rigtigt.
Avatar billede the_bma_man Nybegynder
01. april 2003 - 20:05 #2
En løsning, som nok ikke helt holder til en normaliseringsgennemgang :-)
Tilføj på  t_Hold et felt til n_vundne_kampe, n_tabte_kamp, n_maal_scor, n_maal_ind.
Vedligehold så disse sum-felter, når du indtaster resultatet af en kamp.
Så kan du altid hente dataene direkte, når du skal bruge dem.
(Det er vist noget i retning af 4. eller 5. normal-form) :-)
Avatar billede -sofus- Nybegynder
02. april 2003 - 12:55 #3
the_bma_man det er slave løsningen, hvor man skriver den samme værdi flere gange.

Det som var pointen var at man kun skulle have en værdi 1 sted.
Avatar billede the_bma_man Nybegynder
19. april 2003 - 23:52 #4
Tja, kan ikke rigtig se, hvordan du ellers kan gøre det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester