Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: livello albero

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    livello albero

    Ciao a tutti.
    Ho letto l'articolo su freephp sul salvataggio su db degli alberi(nestedset e adjacencylist).
    Vorrei sapere se è possibile inserire su db anche il livello della foglia o recuperarlo in qualche modo quando carico l'albero.
    Grazie.
    ciao.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    nessuno?

  3. #3
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Personalmente non ho letto l'articolo.

    Può essere che se lo riassumi qualcuno ti sappia dare una mano...

    [.:: JaguarXF ::.]
    __________________

  4. #4
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    ciao,

    inserirlo su DB è possibile, alcuni articoli sul web propongono anche questa soluzione, sia per i nested set sia per l'adjacency list.
    Il problema è che poi la manutenzione dell'albero è una palla (inserisci, sposta, elimina foglie)

    E` piu comodo piuttosto richiamare il percorso dalla radice ad una determinata foglia (le funzioni al_get_path() e ns_get_path() che sono allegate all'articolo) e poi fare il count() dell'array restituito da quelle funzioni
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Grazie mille M4rko , ti spiego cosa devo fare:
    devo realizzare un albero di menu' tipo briciole di pane e ,in partenza non conosco le foglie ma solo la root(1menu) e devo rendere a video tipo:

    ---1menu
    ------1sottomenu_menu1
    ----------1sottomenu_sottomenu_menu1
    ---2menu
    .
    .
    .
    ecc

    il numero di - è relativo al numero del livello,per questo mi serve il livello del nodo.
    Probabilmente nel tuo discorso c'è la soluzione ,solo che sono un po duro di mente(è la seconda volta che mi trovo a scancherare con gli alberi)
    Grazie.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    forse ho capito, prima mi faccio restituire tutti gli id dei nodi poi per ognuno faccio il count e trovo il livello?
    si puo' fare?
    o conosci una strada che impieghi meno risorse?
    ps.gli alberi sono fantastici , è un altro monod!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    qualcuno ha una soluzone migliore?
    Il mio metodo è un trucco!?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    up

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    up!

  10. #10
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    Eccomi qua, sono senza telefono quindi ci metto un po a rispondere.

    Allora, il mio suggerimento si applica quando conosci il nodo foglia e vuoi determinarne il percorso dalla radice. Avendo un array di id, conosci anche il livello dell'albero (il numero di elementi dell'array in sostanza, per questo dicevo che ti basta un count)

    Se invece conosci solo la radice (il tuo caso), puoi utilizzare il metodo proposto nell'articolo su sitepoint:
    http://www.sitepoint.com/article/hie...-data-database
    nella funzione display_children(), con qualche piccola modifica (su quell'articolo usano i nomi dei nodi come chiavi primarie.. sempre meglio utilizzare l'identificativo numerico)

    Sul fatto che sia dispendioso.. in effetti è vero, a causa della struttura ricorsiva del sistema (parlando dell'adjacency list ovviamente). Però è anche vero che portandoti dietro solo un array di interi, tutto sommato è un costo che ci si può permettere
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.