![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ale czy zyskując ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
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 Ten post edytował bpskiba 23.12.2013, 13:07:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 20:46 |