[PHP]metoda rekurencyjnie - problem |
[PHP]metoda rekurencyjnie - problem |
3.08.2009, 08:25:17
Post
#1
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 1 Dołączył: 19.08.2008 Skąd: Warszawa Ostrzeżenie: (0%) |
Witam, mam taką sytuację. W tabeli bazy danych trzymam informacje o departamentach, w kolumnie `parent` trzymam id departamentu "rodzica" , np:
id || name || parent 1 || nadrzedny || null 2 || podrzedny || 1 3 || podrzedny2 || 2 i teraz dla obiektu będącego departamentem pobrać całą ścieżkę rodziców (dla przykladu: dla id 3 powinienem dostać: 2,1), napisałem sobie coś takiego:
oczywiście metoda find zwraca obiekt o zadanym id. Szczerze mówiąc nie wiem co jest nie tak, wydaje mi się to naprawdę nieskomplikowane a jednak nie mogę sobie z tym poradzić. Będę wdzięczny za pomoc. Ten post edytował Marr 3.08.2009, 08:29:49 |
|
|
3.08.2009, 08:41:01
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
pierwsze i podstawowe pytanie: Mozesz jeszcze zmienic strukturę bazy? Jak możesz zrob to jak najszybciej i zamien ją na przyzwoitą strukturę drzewiastą. W necie jest tego trochę. To co tu masz to najgorsza metoda z mozliwych
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
3.08.2009, 08:46:22
Post
#3
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 9 Dołączył: 19.11.2004 Skąd: Iława Ostrzeżenie: (0%) |
w liniach 13 i 26 $tree zmienic na $this->tree
Z tego, co rozumiem, poszukujesz rozwiązania na standardową strukturę danych w postaci drzewa. Niedawno miałem z tym do czynienia i taki sposob pobierania do ktorego zmierzasz uznalem za niezadowalajacy (coraz wiecej rekurencyjnych zapytan w miare rozrastania sie drzewa). Zaproponować moge taki link: http://dev.mysql.com/tech-resources/articl...hical-data.html a konkretnie "Nested set model" Na poczatku moze wydawac sie skomplikowane ale po ogarnieciu okazuje sie bardzo wygodne - wystarczy raz napisac klase z cala funkcjonalnoscia (dodawanie / usuwanie / przemieszczanie / pobieranie dzieci / sciezki rodzicow / subdrzew) i uzywac do woli. ***EDIT nospor byl szybszy Ten post edytował Bonastick 3.08.2009, 08:48:46 |
|
|
3.08.2009, 08:48:48
Post
#4
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 1 Dołączył: 19.08.2008 Skąd: Warszawa Ostrzeżenie: (0%) |
Dzięki za odpowiedzi, w zasadzie przyznam się, że nie pomyślałem, żeby korzystać z jakiś sprawdzonych rozwiązań typu drzewiaste struktury Tak czy inaczej dzięki za pomoc, zaraz coś wykombinuje.
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 11:54 |