Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Ilość pól w tabeli
Forum PHP.pl > Forum > Przedszkole
styryl
Witam

Mam takie małe pytanie. Czy ilość pól w tabeli ma znaczenie jeżeli chodzi o wydajność itd. Czy mozna w tabeli dodawać
np 70-100 pól. Czy raczej szukać rozwiązań mających na celu zmniejszenie liczby pól a zwiększeniem liczby tabel?

Pozdrawiam
pyro
Raczej powinno się to rozłożyc na większe ilości tabel, ale to już zależy od konkretnej sytuacji
piotrooo89
nikt Ci nie zabroni dać 100 kolumn w tabeli, ale jak napisał pyro może to nie być rozwiązanie godne polecenia wszystko zależy co chcesz zrobić.
styryl
No to mozę tak: chce zrobić opis telefonów komórkowych tzn opcje, funkcje itd. Dane nie bedą służyły do wyszukiwania (tylko nazwa modelu) tylko wyświetlanie nic pozatym. Więc jak myślicie rozłożyć na kilka tabel czy w jednej zostawić? Przy czym każde z pól bedzie zawierało od 3 do 10 znaków.
JoShiMa
Ja rozbijam tabelę na mniejsze jeśli:
1. Żadne zapytanie nie będzie potrzebowało wszystkich pól, albo takie zapytanie będzie występowało sporadycznie
2. Jest szansa że duża ilość rekordów będzie miała w którejś kolumnie (albo w kilku) NULL

Rzecz jasna nie twierdzę, że robię dobrze, ale też nie posługuję się (przynajmniej na razie) bardzo dużymi bazami.

Oczywiście tworzę dodatkowe tabele, żeby w miarę możliwości uniknąć redundancji danych, ale to chyba jest powszechnie wiadome.



Cytat(styryl @ 5.06.2008, 14:30:49 ) *
No to mozę tak: chce zrobić opis telefonów komórkowych tzn opcje, funkcje itd. (...) Przy czym każde z pól bedzie zawierało od 3 do 10 znaków.


Jeśli np funkcje mogą się powtarzać w różnych modelach zrób tabelę z powiązaniami ID->funkcja a do tabeli głównej wstawiaj tylko ID jako klucz obcy.
piotrooo89
ja w tym Twoim konkretnym przypadku rozbił bym na kilka tabel, i jak napisała JoShiMa będziesz mógł uniknąć redundancji, jak będziesz chciał zrobić relacje np 1 - wielu to możesz mieć problem w jednej tabeli to zrobić.
l0ud
styryl, raczej nie polecam takiego układu bazy w Twoim przypadku. Z czasem będzie mogła być potrzeba dodania kolejnych pól, i tabela zrobi się szeroka z bardzo dużą ilością miejsc niewykorzystanych.

Lepiej zrób coś na ten wzór:

Tabela phones
- identyfikator telefonu
- nazwa modelu

Tabela phone_parameters
- identyfikator parametru [łatwiejsza edycja, usuwanie]
- identyfikator telefonu
- nazwa parametru
- wartość parametru

I połączyć te obie tabele przed identyfikator telefonu smile.gif
styryl
Super rozbije na kilka tabel, dziękuje panowie
JoShiMa
Cytat(styryl @ 5.06.2008, 14:40:11 ) *
dziękuje panowie

I Panie tongue.gif
styryl
Oczywiście panią również dziękujemy biggrin.gif
dr_bonzo
l0ud:
Cytat
Tabela phones
- identyfikator telefonu
- nazwa modelu

Tabela phone_parameters
- identyfikator parametru [łatwiejsza edycja, usuwanie]
- identyfikator telefonu
- nazwa parametru
- wartość parametru

A gdzie tabelka z samymi parametrami? Czyli pelna relacja wiele do wielu: Telefony, Parametry, Posiadane_Parametry_Przez_Telefon?
l0ud
dr_bonzo, ja to uprościłem do bólu winksmiley.jpg Chodziło tylko o pokazanie, jak do pewnego konkretnego modelu telefonu przypisać unikalne parametry z innej tabeli - po prostu nazwa i treść parametru w formie tekstu. Wiem, że to nieoszczędne i mamy nadmiarowość informacji ale jak już pisałem... proste do bólu smile.gif
piotrooo89
styryl musi trochę inwencji wykazać i sam coś napisać... naprowadziliśmy go tylko.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.