[MySQL] Jak =?ISO-8859-2?Q?zaprojektowa=E6_tabele=3F_Wyniki_?==?ISO-8859-2?Q?pojedynk=F3w=2C_meczy_-_tenis?=
Grzegorz - 21-08-2007 00:07
[MySQL] Jak =?ISO-8859-2?Q?zaprojektowa=E6_tabele=3F_Wyniki_?==?ISO-8859-2?Q?pojedynk=F3w=2C_meczy_-_tenis?=
Witam, Siedzę i myślę i nie mam pomysłu jak zaprojektować tabele, aby wszystko dobrze działało. Może ktoś mi pomoże? Sprawa wygląda tak: Mam Tabelę - zawodnicy, i dane id_zawodnika, imie, nazwisko itd.
Teraz problem: Są rozgrywane mecze, w każdym meczu jest 10 pojedynków. 9 typu każdy z każdym i jeden debel 2 zawodników kontra 2 zawodników. Oczywiście każdy mecz ma inne dane typu data pojedynku, wynik meczu, sędzia, kapitan gospodarzy, kapitan gości, zawodnicy rezerwowi. Każdy pojedynek to 5 setów (wyniki każdego setu i punkty za każdy set dla wygrywającego zawodnika). W sumie jest 12 zespołów w lidze.
Zależy mi na zapisaniu wszystkich tych danych i później ich obróbce, tzn. utworzeniu tabeli ligi po każdej serii pojedynków.
Kombinuję już na różne sposoby, ale każdy pomysł ma wady. Np. tabele:
mecz-dane id | data | wynik_meczu | sedzia | uwagi
pojedynki id | id_zaw1 (id z tabeli zawodnicy_wyniki) | id_zaw2 | rodzaj_pojedynku (p - pojedynek, d - debel)
zawodnicy_wyniki id | id_zaw (id z tabeli zawodnicy) | w1 | w2 | w3 | w4 | w5 | s1 | s2 | s3 | s4 | s5
Inny pomysl to:
mecz_dane id | data | wynik_meczu | sedzia | uwagi
mecz_pojedynki id_mecz | id_pojed
pojedynki id | id_zaw1 (z tabeli zawodnicy) | id_zaw2 | | w1 | w2 | w3 | w4 | w5 | s1 | s2 | s3 | s4 | s5
w1...w5 - wyniki setow np. 21:19, 21:15 s1...s5 - punkty za set 1:0, 0:1 lub tez wynik po 1 secie np. 1:0, po 2 secie np. 2:0 czy 1:1
Jesli macie jakiś pomysł - pomóżcie! Z góry dziękuję. Pozdrawiam, Grzegorz
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 21-08-2007 00:07
Grzegorz wrote: > Witam, > Siedzę i myślę i nie mam pomysłu jak zaprojektować tabele, aby wszystko > dobrze działało. Może ktoś mi pomoże? > Sprawa wygląda tak: > Mam > Tabelę - zawodnicy, i dane id_zawodnika, imie, nazwisko itd. > > Teraz problem: > Są rozgrywane mecze, w każdym meczu jest 10 pojedynków. 9 typu każdy z > każdym i jeden debel 2 zawodników kontra 2 zawodników. > Oczywiście każdy mecz ma inne dane typu data pojedynku, wynik meczu, > sędzia, kapitan gospodarzy, kapitan gości, zawodnicy rezerwowi. > Każdy pojedynek to 5 setów (wyniki każdego setu i punkty za każdy set > dla wygrywającego zawodnika). > W sumie jest 12 zespołów w lidze. > > Zależy mi na zapisaniu wszystkich tych danych i później ich obróbce, > tzn. utworzeniu tabeli ligi po każdej serii pojedynków.
Dziwne zasady, szczególnie jak dodać tabele, które usiłujesz zrobić.
> Kombinuję już na różne sposoby, ale każdy pomysł ma wady. > Np. > tabele: > > mecz-dane > id | data | wynik_meczu | sedzia | uwagi
A sędzia nie powinien być przypisany do pojedynku?
> pojedynki > id | id_zaw1 (id z tabeli zawodnicy_wyniki) | id_zaw2 | rodzaj_pojedynku > (p - pojedynek, d - debel)
pojedynki id, id_meczu, sędzia,...
id, id_pojedynku, id_zawodnika, strona
> zawodnicy_wyniki > id | id_zaw (id z tabeli zawodnicy) | w1 | w2 | w3 | w4 | w5 | s1 | s2 | > s3 | s4 | s5
Wyniki są pojedynku, nie zawodnika - ale wystarczy przechowywać wyniki setów:
sety id, id_pojedynku, nr_seta, wynik
Z tego możesz wyciągnąć wyniki pojedynków, ale można sobie zdenormalizować bazę dla wygody:
pojedynek_wyniki id, id_pojedynku, wynik
-- P.M.
Grzegorz - 21-08-2007 00:07
Paweł Matejski pisze:
> > A sędzia nie powinien być przypisany do pojedynku? > Nie, sędzia jest stały dla wszystkich pojedynków.
> > Wyniki są pojedynku, nie zawodnika - ale wystarczy przechowywać wyniki setów: > > sety > id, id_pojedynku, nr_seta, wynik > > Z tego możesz wyciągnąć wyniki pojedynków, ale można sobie zdenormalizować bazę > dla wygody: > > pojedynek_wyniki > id, id_pojedynku, wynik > Co do tabeli sety to nie zawsze będą kompletne wyniki setów. Zapomniałem to dodać. Nie wszystkie pola z wynikami setów będą wypełnione, więc nie da się wyciągnąć wyniku pojedynku.
Ale dzięki za wskazówki. Pozdrawiam, Grzegorz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Gdzie MySQL 4.1, a gdzie 5.0?
[MS SQL] "set names" (mySQL) w MS SQL
oracle -> oracle lub oracle -> mysql replikacja - programy
[mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu.
[MySQL] Zwrot tego, co pasuje i nie pasuje :-/
[pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1
[mysql] galeria zdjec - numerowanie zdjec
[MySQL] Zapytanie z pliku , wynik do pliku
[mysql] CONCAT agregujący, ale nie GROUP_CONCAT()
mysql data 0000-00-00 na koniec
zanotowane.pldoc.pisz.plpdf.pisz.plshanti.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|