Witam,
Mam problem z zaprojektowaniem bazy danych. Mianowicie mamy standardowy pomysł (tabele: kategorie, produkty, kategorie-produkty - do relacji wiele do wielu). I przykładowo kategorie wyglądają tak:
Obraz > Monitory > LCD > 17 cali
Obraz > Monitory > LCD > 19 cali
Obraz > Monitory > CRT > 15 cali
Obraz > Monitory > CRT > 17 cali
Obraz > Karty graficzne
Użytkownik klika na, powiedzmy, 17 cali (z LCD) i wyświetlają mu się produkty powiązane z tą kategorią. Tylko pytanie, co zrobić (jak wyglądają sprawdzone rozwiązania), żeby optymalnie wyświetlać produkty należące do jakiejkolwiek podkategorii należącej do wybranej np. LCD, Monitorów, czy Obrazu (czyli klikam na Obraz i mają wyświetlić się monitory LCD 17 calowe, karty graficzne, itd.).
Na myśl przychodzą mi na razie 2 rozwiązania:
a) rekurencyjne zapytania bezpośrednio w PHP - wadą dużą jest niedopuszczalne multum zapytań, jeśli kategorii jest sporo albo po prostu wybrano jedną z głównych kategorii, która obejmuje wiele podkategorii
B) stworzyć pomocniczą tabelę uzupełnianą przy każdej edycji drzewa kategorii / zmiany położenia produktu, która będzie wiązać każdy produkt na ścieżce od kategorii, do której produkt należy do korzenia drzewa kategorii (czyli monitor 17 calowy powiąże dodatkowo z kategoriami: 17 cali, LCD, Monitory, Obraz) - wadą tutaj jest multum rekordów przy większym sklepie i sporo babrania, żeby zapewnić spójność i poprawność bazy przy edycji drzewa kategorii czy zmiany kategorii produktów
Co o tym myślicie? Jakieś doświadczenia z tym związane? A może macie jakieś sprawdzone rozwiązania?
Z góry dziękuję za odpowiedzi.