Gestione categorie in un albero

lunedì 06 marzo 2006 - 11.48

pinux Profilo | Newbie

Salve, vorrei chiedervi un parere su un problema di gestione delle categorie organizzate in maniera gerarchica ad albero.

La mia struttura dati è costituita da un albero, i cui nodi rappresentano le categorie merceologiche delle società, come l'esempio riportato in allegato.

I livelli di profondità dell'albero sono 3, ma possono variare.

Attualmente le categorie si trovano in un database dove ogni riga, che rappresenta una categoria, è legata ad una categoria padre con un riferimento al suo ID. In questo modo, tramite uno script ricorsivo riesco a generare tutto l'albero delle categorie.

Dovendo implementare una nuova soluzione in .NET, mi stavo domandando se la soluzione di inserire nel database una struttura con i riferimento al nodo padre sia la scelta migliore, oppure posso utilizzare un'altra implementazione, per esempio XML o altro.

Potete darmi qualche suggerimento?

Grazie per la vostra attenzione.

G. Spaziani

pinux Profilo | Newbie

[CUT]
>Direi che l'xml in una struttura gerarchica sia sicuramente la
>miglior scelta visto anche che ci sono diverse classi con il
>quale puoi manipolare senza problemi i file xml.
>Marco Caruso
>[MCAD]
>il mio blog
>http://blogs.dotnethell.it/Coach

Innanzitutto grazie mille per l'immediata risposta.

In effetti la mia decisione ricadeva proprio su XML. Approfitto per chiedere un ulteriore dettaglio; come potrebbe essere strutturato un file XML del genere, sapendo che delle categorie interessa sapere ID, NOME, CATEGORIAPADRE?

Grazie ancora per l'aiuto.
G. Spaziani
http://www.spaziani.it

pinux Profilo | Newbie

[CUT]

>puoi fare una cosa simile
><categoria id="1" nome="test" CategoriaPadre="testPadre" />
>
>E così via per tutti gli altri, ovvero usare gli attributi per
>rappresentare i campi!
>Marco Caruso
>[MCAD]
>il mio blog
>http://blogs.dotnethell.it/Coach

Grazie per l'aiuto prezioso.

G. Spaziani
http://www.spaziani.it

pinux Profilo | Newbie

><categoria id="1" nome="test" CategoriaPadre="testPadre" />
>
>E così via per tutti gli altri, ovvero usare gli attributi per
>rappresentare i campi!
>Marco Caruso
>[MCAD]
>il mio blog
>http://blogs.dotnethell.it/Coach

Mi chiedevo se è preferibile utilizzare gli attributi per ogni categoria, oppure elementi come nell'esempio di seguito:

<categorie_assoc> <row> <codice>1</codice> <codice_dinesys>D000000</codice_dinesys> <nome>Tutte le categorie</nome> <descrizione_aggiuntiva>NULL</descrizione_aggiuntiva> <codice_padre>NULL</codice_padre> <livello>0</livello> </row> <row> <codice>2</codice> <codice_dinesys>D010000</codice_dinesys> <nome>Abbigliamento</nome> <descrizione_aggiuntiva>NULL</descrizione_aggiuntiva> <codice_padre>1</codice_padre> <livello>1</livello> </row> <row> <codice>3</codice> <codice_dinesys>D020000</codice_dinesys> <nome>Alimentazione</nome> <descrizione_aggiuntiva>NULL</descrizione_aggiuntiva> <codice_padre>1</codice_padre> <livello>1</livello> </row> <row> <codice>4</codice> <codice_dinesys>D030000</codice_dinesys> <nome>Arredamento</nome> <descrizione_aggiuntiva>NULL</descrizione_aggiuntiva> <codice_padre>1</codice_padre> <livello>1</livello> </row> </categorie_assoc>

Grazie per l'aiuto

G. Spaziani
http://www.spaziani.it

pinux Profilo | Newbie

>Dipende da come ti trovi meglio all'inizio io usavo sempre i
>nodi invece adesso trovo molto comodo gli attributi. Se pensi
>al nodo come ad un record di una tabella allora gli attributi
>sono le colonne e in questo contesto è ottimo!
>Marco Caruso
>[MCAD]
>il mio blog
>http://blogs.dotnethell.it/Coach

In effetti il codice che ho estratto nel precedente messaggio deriva da una tabella di un database, e l'estrazione è stata effettuata automaticamente dal software. Per questo mi chiedevo se era più conveniente utilizzare i nodi o gli attributi.

Il contesto in cui dovrò utilizzare questo file XML è il seguente: dovrò associare agli utenti registrati sul sito una o più categorie contenute nel file XML. L'utente, al momento della registrazione, potrà scegliere le categorie di appartenenza mediante un menu a tendina dinamico, ossia vengono mostrate solo le sottocategorie della categoria padre selezionata.

Inoltre avrò la necessità di localizzare il file XML in differenti lingue: per questo, piuttosto che usare un DB ho scelto il file XML; per ogni lingua corrisponde un file e le categorie sono corrispondenti in base al campo ID.

Proverò ad utilizzare gli attributi come colonne del database.

Ha altri suggerimenti da darmi?

Grazie per l'aiuto.

G. Spaziani
http://www.spaziani.it
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5