![]() |
![]() |
![]()
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: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Wszystko zależy tylko i wyłącznie od "powtarzalności" danych w rekordzie. Jeśli do jednego rekordu trzeba mieć możliwość przypisania kilku identycznych danych to jest to już relacja jeden do wielu. A jeśli dodatkowo do tych wielu pasuje także wiele rekordów to masz wiele do wielu, co ewidentnie wskazuje Ci na oddzielenie wyników. Przykład "jeden do wielu"? Telefony. Jedna osoba może nie mieć ich wcale, jeden lub kilka (domowy, służbowy, komórkowy), ale tyczą one zawsze tylko tej jednej osoby gdyż nie może jeden telefon być własnością kilku (na upartego domowy mógłby być (IMG:style_emoticons/default/winksmiley.jpg) ). Wiele do wielu? Uczelnia - student. Jeden student może uczyć się na wielu uczelniach, a dodatkowo do jednej uczelni uczęszcza wielu studentów. Myślę, że to obrazowe przykłady. Tak więc jak widzisz, dane typu telefon wcale nie muszą być ściśle związane z kolumną. Wszystko zależy od struktury bazy i pomysłu na nią. To samo z adresem, bo przecież może być stały i tymczasowy. W takich przypadkach można więc dane teoretycznie nierozerwalnie z czymś związane - jeszcze wydzielić. Ale to już zależy naprawdę od tego czy trzeba czy nie. Nie zawsze jest sens.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 21:50 |