![]() |
![]() ![]() |
![]() |
![]()
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ź ! |
|
|
![]()
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 |
|
|
![]()
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 ?
|
|
|
![]()
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.
|
|
|
![]()
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) |
|
|
![]()
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.
|
|
|
![]()
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 ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 09:37 |