![]() |
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:13 |