Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] budowa drzewa grup towarów
czychacz
post
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


mam za zadanie na podstawie bazy danych MySQL zbudować drzewo grup towarów.
tabela, na podstawie której mam zrobić to drzewo:
  1. id INT NOT NULL PRIMARY KEY AUTO_INCREMENT
  2. id_nadrzedne INT NOT NULL DEFAULT 0
  3. nazwa VARCHAR(20) NOT NULL UNIQUE


jeśli id_nadrzedne = 0 to rekord jest traktowany jako korzeń (czy jak to się zwie (IMG:style_emoticons/default/biggrin.gif) )
zakładając, że w bazie są już jakieś dane przykładowe:
Kod
1, 0, 'Procesory'
2, 0, 'Płyty główne'
3, 0, 'Dyski twarde'
4, 3, 'SATA'
5, 3, 'PATA'
6, 4, 'Western Digital'
7, 4, 'Seagate'
8, 5, 'Samsung'
9, 1, 'AM3'
10, 9, 'Athlon II 250'

powinienem otrzymać drzewo:
Kod
Procesory
|--AM3
   |--Athlon II 250
Płyty główne
Dyski twarde
|--SATA
|  |--Western Digital
|  |--Seagate
|--PATA
   |--Samsung


jedyne rozwiązanie, jakie przychodzi mi do głowy to programowa obróbka całej tabeli: pobranie i odpowiednie sortowanie przez program, a nie przez bazę... czy da się to jakoś inaczej rozwiązać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


http://www.google.com/search?hl=en&saf...mp;aql=&oq= - 12 mln wyników - a Ty nawet w jeden nie zajrzałeś? Było to poruszane dziesiątki razy...
Go to the top of the page
+Quote Post
czychacz
post
Post #3





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


czyli, jak widzę, nie ma rozwiązania mojego problemu. nie mogę zmodyfikować tej bazy, a poziom hierarchii drzewa może być dowolny...
Go to the top of the page
+Quote Post
cojack
post
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Musisz rekursywnie przeprowadzić zapytanie, które Ci wybierze wszystkie dzieci z sql'a. A struktura z parent_id jest stara jak świat i mało wydajna. W necie aż huczy od rozwiązań tego problemu.
Go to the top of the page
+Quote Post
JoShiMa
post
Post #5





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(czychacz @ 7.02.2011, 11:51:25 ) *
czyli, jak widzę, nie ma rozwiązania mojego problemu. nie mogę zmodyfikować tej bazy, a poziom hierarchii drzewa może być dowolny...

Jeśli nie możesz modyfikować bazy to nie pozostaje CI nic innego jak obrabiać dane na poziomie PHP. W przeciwnym razie poradziłabym Ci zmienić konstrukcję drzewa i zaimplementować netsted set.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 7.10.2025 - 20:50