Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja układu tabel / zapytań
athabus
post 27.09.2014, 10:03:30
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Załóżmy taki uproszczony przykład. Mamy 3 tabele
kolekcja_eksponatów, eksponat (zawiera klucz obcy id_kolekcji i id_kategorii), kategoria eksponatu . Kolekcja eksponatów grupuje eksponaty za pośrednictwem łączącej tabeli.

Zadanie to wyszukać kolekcje, która zawierają eksponaty TYLKO określonych kategorii - czyli jeśli np. użytkownik wybierze zabytki Egtipu, zabytki Syrii to zwrócona kolekcja nie może zawierać innych eksponatów. Użytkownik ma do wyboru około 150 kategorii i szukając kolekcji zazwyczaj wybierze około 70-120 kategorii.

Teraz pytanie czy da się jakoś uprościć (myślę tu o jakimś cache) zapytanie, tak żeby w kolekcji zapisać jakie zabytki zawiera i nie musieć szukać za każdym razem w elementach kolekcji. Myślałem o czymś na zasadzie maski bitowej, która byłaby kalkulowana dla kolekcji i zapytania i ze sobą porównywana, ale 150 kategorii to sporo i chyba na maskę za dużo?

Macie jakieś pomysły jak to obejść.

Dodam, że w prawdzimym przykładzie dotarcie do elementów składowych kolekcji jest jeszcze bardziej skomplikowane bo jest kilka tabel "po drodze", więc wyszłoby z tego jakieś masakrujące zapytanie.

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:13