Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tworzenie optymalinych tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
trolololo
Chciałbym stworzyć tabele najbardziej optymalne pod względem wydajności.

Chodzi mi o tabele w których zapisuje jakieś główne dane w tabeli1 a w pozostałych tabelach, powiedzmy kryteria pobierane z checkboxów, gdzie może ich byc wiele, powiedzmy max 10.
Zgodnie z tym co zawsze tworzyłem, tabele wyglądają następująco:

tabela1
- id
- dane
...
- dane10

tabela2
- id
- id_tabela1

tabela3
- id
- id_tabela1

tabela4
- id
- id_tabela1

lub

tabela2
- id
- id_tabela2
- id_tabela1

tabela3
- id
- id_tabela3
- id_tabela1

tabela4
- id
- id_tabela4
- id_tabela1


Następnie aby pobrać dane ( wyszukiwarka ) robie joiny z tabela 1 do tabel2,3,4

No i tutaj dochodzimy do sedna, a co jakby upakować dane z tabel: 2,3,4 do tabeli 1, tworząc adekwatne kolumny zakładając, że system nie musi być skalowalny, czyli stworzyć 3 kulumny i zapisywać wartości od 1 do 10 w nich. Np 1234, 157, 39, etc

Zyska na tym wydajność ?
Tabela 1 będzie do kiluset tysięcy rekordów.
bpskiba
"...No i tutaj dochodzimy do sedna, a co jakby upakować dane z tabel: 2,3,4 do tabeli 1, tworząc adekwatne kolumny..."


to jest właściwe rozwiązanie. Nie tracąc nic na wydajności
trolololo
Ale czy zyskując ?
bpskiba
Cytat(trolololo @ 22.12.2013, 20:10:38 ) *
Ale czy zyskując ?


Z punktu widzenia struktury bazy nie da się nic zyskać w tym przypadku.
Można jedynie stracić.
Zyskać dużo można na prawidłowych indeksach i tutaj masz pole do popisu.

Tak jeszcze odnośnie wątku głównego:
Jeżeli tabel1 jest tabelą główną, a mamy jeszcze checkboxy i ich wartości, to naturalna wydaje się być struktura:

tabela: tabela1
- id_tabela1
- dane_t1

tabela: checkboxy
- id_checkboxy
- nazwa


tabela: tab_check
- id_tab_check
- id_tabela1
- id_checkboxy
- wartosc

W tej ostatniej jeżeli może uda się pominąć id_tab_chech
Pyton_000
Nie wiem jak inni ale ja kompletnie nie zrozumiałem z problemu autora.
Możesz podać bardzie adekwatny opis i przykład ?
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.