![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 3 Dołączył: 18.08.2011 Skąd: Chrzanów Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Mam dwie tabele jedna to kategorie_produktow, druga zaś to produkty wyglądają tak: kategorie_produktow id | kategorie_produktow_id(FK) | nazwa 1 null Multimedia 2 1 Telewizory 3 1 Komputery 4 2 LCD 5 2 Plazma 6 3 Laptopy 7 3 Stacionarne oraz produkty id | kategorie_produktow_id(FK) | nazwa | opis | stan ... potrzebuje wykonać zapytanie które zwróci mi podkategorie z wybranej kategorii wraz z ilością produktów w wszystkich podkategoriach podkategorii kategorii (IMG:style_emoticons/default/tongue.gif) np: wybieram kategorie Multimedia (1) zatem chciałbym aby wypisał mi kategorie: Telewizory | ilosc produktow w Telewizory, LCD, Plazma (uwzględniając wszystkie kategorie poniżej kategori Telewizory Komputery | komputery, laptopy, stacionarne jedyny pomysł jaki na to mam to robienie tego na raty - Najpierw pobranie danych o kategoriach - potem stworzenie drzewa listy podrzędnych id - a dopiero potem zapytanie SQL liczące ilość. Może jest na to jakiś inny lepszy sposób niż wykonywanie x zapytań? Ten post edytował zaajcu 13.11.2012, 14:39:16 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Ilość produktów w danej kategorii (czy to z uwzględnieniem jej podkategorii czy bez) możesz bez problemu trzymać w dodatkowej kolumnie, której wartość zmienia się o jeden przy dodaniu/usunięciu produktu - nie będziesz musiał każdorazowo zliczać produktów.
2. Jeżeli skorzystałbyś z bardziej odpowiedniego dla RDBMS-ów modelu drzewa, np. popularny nested set, mógłbyś w zasadzie wybrać wszystko czego potrzebujesz jedynym, trywialnym (przy uwzględnieniu punktu #1) zapytaniem. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 15:40 |