Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ustawienie zawodników na mecz - jak najlepiej w bazie zapisywać?, Przecinkować? Każdy zawodnik w osobnym rekordzie?
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Piszę grę via www, menedżer siatkarski. Właśnie zastanawiam się, jak najlepiej zapisywać ustawienie zawodników (ustalane przed każdym meczem) na dany mecz. Dać po prostu dwa rekordy - formation1 i 2, w i nich wyprzecinkować IDy wszystkich zawodników? I wtedy np. pierwszy zawodnik w tym ciągu to rozgrywający, drugi libero, trzeci przyjmujący itp. Czy lepiej może zrobić 24 kolumny (w każdej drużynie może być 12 zawodników na mecz - 6 grjaących i 6 na rezerwie) i w każdej osobno zapisywać? Niby troche dużo kolumn sie porobi, jak się zrobi właśnie tak... A chyba explodowanie tych wyprzecinkowanych zawodników (np: 8,3,6,32,12,2,31...) nie jest złe? Mniej wtedy to miejsca w bazie zajmie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Proszę o rady.
Go to the top of the page
+Quote Post
tomek_
post
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 4
Dołączył: 6.11.2008
Skąd: Bytom

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


Jak na mój gust lepszym rozwiązaniem była by dodatkowa tabelka

id_meczu, id_drużyny, id_zawodnika, id_pozycji   i tam byś miał przechowywane ustawienie, 
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Hm, ale wtedy zamiast dwóch ciągów z około 30 znakami uzyskam 24 rekordy w dodatkowej tabeli. Na pewno jest to lepsze wyjście? Niby wydaje się bardziej profesjonalne, albo - przecinki wydają się nieprofesjonalne, ale wtedy będziemy mieli o jedną tabele mniej.
Żeby lepiej zobrazować, przecinki:
Cytat
'432,211,232,234,233,231,321,320,322,323,324,330'
'100,101,102,103,104,105,106,107,108,109,110,111'

Tabela:
Cytat
mecz team position plr
5 1 1 432
5 1 2 211
5 1 3 433
5 1 4 434
5 1 5 435
5 1 6 436
5 1 7 437
5 1 8 438
5 1 9 439
5 1 10 440
5 1 11 441
5 1 12 442
5 2 1 101
5 2 2 102
5 2 3 103
5 2 4 104
5 2 5 105
5 2 6 106
5 2 7 107
5 2 8 108
5 2 9 109
5 2 10 110
5 2 11 111
5 2 12 112

No i jeszcze ma być takie coś, jak ustawienie domyślne - jeżeli użytkownik nie ustawił żadnego na dany mecz, to właśnie domyślne będzie w danym meczu. To w tym wyjściu z dodatkową tabelą, może zrobićby tak, że meczId=0 dla domyślnego ustawienia? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Bo i tak meczu o IDzie zero nie będzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Dla aktualnego wyjścia, z przecinkami, domyślne ustawienie wrzuciłem w tabelę z drużynami - dodatkowa kolumna.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Co do explode - uwzglednij to jak bedziesz przeszukiwal te dane.
Optymalizowanie aplikacji TYLKO pod ilosc zajmowanego miejsca w bazie jest glupota. Co z tego ze dane beda ci zajmowac 10% miejsca, jesli nie bedziesz mogl niektorych operacji w ogole zrobic, a czesc bedzie strasznie powolna
Go to the top of the page
+Quote Post
tomek_
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 4
Dołączył: 6.11.2008
Skąd: Bytom

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


Co z tego że będzie więcej rekordów jak operacje na nich będą dużo prostsze i szybsze. 


porównaj sobie np jak wyciągnąć na jakiej pozycji grał zawodnik x w meczu y, lub jaki zawodnik gał na jakiejś pozycji itp.

W przypadku dodatkowej tabelki wyciągnięcie tego to jedno proste zapytanie które bardzo szybko się wykona, a w wersji z przecinkami potrzebne już są dodatkowe operacje które znacznie wpłyną na wydajność Twojej aplikacji.

co do ustawień domyślnych można mieć mecz o id=0 

lub dodatkową tabelkę która będzie trzymała ustawienia domyslne dla drużyn. 
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: 25.12.2025 - 23:38