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 24.11.2008, 22:31:32
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 smile.gif Proszę o rady.


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
tomek_
post 25.11.2008, 09:54:49
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, 


--------------------
Dysortografik -> nie besztać za błędy ;P

pomogłem ? -> kliknij "pomógł" ;)
Go to the top of the page
+Quote Post
Apocalyptiq
post 25.11.2008, 17:06:56
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? smile.gif Bo i tak meczu o IDzie zero nie będzie smile.gif
Dla aktualnego wyjścia, z przecinkami, domyślne ustawienie wrzuciłem w tabelę z drużynami - dodatkowa kolumna.


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
dr_bonzo
post 25.11.2008, 17:52:44
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


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
tomek_
post 26.11.2008, 08:47:14
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. 


--------------------
Dysortografik -> nie besztać za błędy ;P

pomogłem ? -> kliknij "pomógł" ;)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 06:39