![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 1 Dołączył: 19.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Przyszło mi rozbudować nieco dane przechowywane w tabelach w bazie danych ale w trakcie zacząłem zastanawiać się nad sensownością mojego pomysłu. Otóż mam tabelę zbudowaną z około 40 kolumn. Większość z nich jest typu int. Czy można jeszcze do takiej tabeli dodawać kolejne kolumny, czy też raczej lepiej stworzyć nową tabelę i tam je wrzucać? Czy ilość kolumn ma jakieś widoczne przełożenie na wydajność zapytań i całego kodu napisanego w php? Z jednej strony chyba bezsensowne jest dzielenie tabel i potem ich łącznie za pomocą JOIN, czy nawet późniejsze sklejanie tablic z rezultatami zapytań, ale z drugiej taki podział nie wydaje się całkiem pozbawiony sensu. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 26.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
imho:
-> w bazie trzymasz jeden rekord dla danego turnieju (w tabeli tournaments) -> turniej ma wielu uczestników (relacja wiele do wielu, bo uczestnik bierze udział w wielu turniejach - to atrybut pochodny, ale może się przydać do łatwiejszej logiki) -> turniej ma swój typ (relacja jeden do wielu - turniej ma jeden typ, który współdzieli z innymi) - wręcz w modelowaniu obiektowym sugerowałbym podklasy dla różnych turniejów -> turniej ma wiele rund (jak to generować - wynika z typu turnieju) -> każda runda ma wiele meczów -> no i oczywiście mecz ma wielu uczestników (relacja wiele do wielu) i teraz w momencie startu turnieju, generujesz pierwszą rundę - z typu meczu wynika ile rund ma być i jak ma wyglądać logika. następnie gdy wszystkie mecze będą zakończone w rundzie, generujesz kolejną rundę (lub kończysz turniej - logika powinna być zawarta w klasie zawierającej typ turnieju). itd. oczywiście co dokładnie będzie w bazie, a co w kodzie zależy też chociaż od tego jak elastyczny ma być system etc. Ten post edytował esse 26.12.2013, 23:39:16 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 09:08 |