Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Baza danych dla managera sportowego, jak to wygląda ?
Mefiuu
post
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


Witam. Mam dziś raczej pytanie ogólne, nie odnośnie samego kodu (IMG:style_emoticons/default/wink.gif) jestem fascynatem sportu, mam założone konta w dwóch managerach sportowych (różne dyscypliny). Zastanawia mnie w jaki sposób przechowywane są dane w takiej bazie danych ? Baza musi składać się z wielu tabel, z ogromnej ilości wpisów ? Nie chodzi mi o samo działanie silnika meczowego, myślę, że to byłbym w stanie napisać. Chodzi mi bardziej o przechowywanie danych o poszczególnych meczach. Przypuśćmy, cała liga IV gra mecze we wtorek o 17. Zapewne Cronem odpalam regularnie skrypt który mi te mecze oblicza. Dla każdego meczu miałbym tworzyć osobną tabelę? Przypuśćmy, że użytkownik nie zalogował się od równej 17 aby obejrzeć mecz, tylko albo o 17:50 albo w ogóle nad ranem, po meczu. Jak to wygląda? Opis każdego meczu z osobna jest trzymany w osobnych, unikalnych tabelach ? A później przy logowaniu usera są wyszukiwane te tabele związane z nazwą jego drużyny?

Nie, nie zamierzam na razie tworzyć swojej gry, pytam czysto teoretycznie.

Podobno kto pyta nie błądzi (IMG:style_emoticons/default/wink.gif)

Z góry dzięki za odpowiedź !
Go to the top of the page
+Quote Post
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


A po co osobne tabele? Po prostu relacyjna baza danych dajmy na to taka pseudostruktura:
Kod
mecz: //trzymasz tu każdy mecz
-id
-kto
-z_kim
-kiedy
-kto_wynik
-z_kim_wynik

mecz_opis: // dodajesz tu do każdego meczu jakieś wydarzenia na daną minutę
-id_meczu //relacja do mecz
-czas
-opis_meczu

użytkownik
-id
-login
-haslo
-etc.

uzytkownik_mecz //jeżeli chcesz pozwalać obstawiać
-id
-id_mecz //relacja mecz
-id_uzytkownik //relacja user
-kto_wynik
-z_kim_wynik


i zapełniasz danymi, a później je tylko wyświetlasz
Go to the top of the page
+Quote Post
Mefiuu
post
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


hmmm... no w sumie pewnie to tak jest zorganizowane. Ale dajmy na to, że chcę dodawać dane regularnie, co punkt (siatkówka). Wtedy w tabeli "mecz_opis" w polu "opis meczu" dam na przykład: "Atak z krótkiej, prowadzimy". To będzie komentarz do jednej akcji jednego meczu. Przypuśćmy że gra się rozrasta, jest 5 krajów, w każdym po 100 lig po 16 drużyn w każdej. Meczy multum, jeśli do jednej tabeli tyle wpisów dodam to nie padnie ?
Go to the top of the page
+Quote Post
lobopol
post
Post #4





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Kwestia konfiguracji bazy, jak długo są dane trzymane, jaka baza (mysql/postgre/orecle/mssql/etc.). Na to pytanie nie ma prostych odpowiedzi.
Go to the top of the page
+Quote Post
Mefiuu
post
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


przypuśćmy że baza MySQL (bo z postgresql chyba ciężko o dobry hosting ?), no i przypuśćmy że jest po 16 drużyn, każda kolejka we wtorek i niedzielę, czyli 30 kolejek załatwiamy w 15 tygodni (plus pewnie ze 2 tygodnie po sezonie trzymamy dane, jeśli ktoś by chciał wrócić do jakiegoś meczu i przeanalizować). Raczej ciężko wykonalne ?

Dopytuję tak, bo nie mam doświadczenia w tak dużych rozmiarowo bazach (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
lobopol
post
Post #6





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


30 wpisów to jest nic, nie powinieneś mieć problemów z 300 000 wpisów (a nawet więcej), jeżeli będziesz miał poprawne indeksy.
Go to the top of the page
+Quote Post
Mefiuu
post
Post #7





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


ale teraz tak policzyłem:

Przypuśćmy że w lidze gra 16 zespołów. Dajmy na to że jest 200 lig. W sezonie jest 30 kolejek x 15 meczy x (w najgorszym wypadku) 5 setów (4 sety wyniki 25:20 i tie break 15:10) daje nam:

200 x 30 x 15 x (4 x 45 + 25) = 18 450 000 wpisów po całym sezonie.

Oczywiście to przy założeniu że każdy mecz trwa 5 setów, w każdym są wysokie wyniki. Ale oczywiście się zdarzają mecze po 3:0, walkowerem, lub każdy w secie do na przykład 5.

Ale najgorszy wypadek jest taki.

Chyba żadna tabela takiego natłoku danych nie wytrzyma ?

Chyba że dzielić tabele i na przykład robić tabele dla 1 ligi (4 grupy) i 2 ligi (16 grup), osobną dla 3 ligi (64 grupy) i dla 4 ligi (128grup x 16 drużyn). No i dodatkowo rozgrywki pucharowe w oddzielnej tabeli, międzynarodowe/reprezentacyjne też, dla ligi niemieckiej osobny podział...

Ale baza będzie przecież potężna ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 09:37