Newsgroup: it.comp.software.database
Titolo: Memorizzare una struttura ad albero... quale soluzione?

Salve, vorrei chiedervi quale soluzione per voi č la migliore per
risolvere il problema che adesso vi espongo:
vorrei creare un database che mi consenta di memorizzare la struttura
di un libro (capitoli, sottocapitoli e via dicendo). Il numero di
livelli di questo ipotetico libro non č definito.
Io avevo pensato di creare una tabella (al'interno di un database) in
cui indicare il nome del paragrafo, e poi una relazione ricorsiva di
tipo 1.n mediante la quale indicare il paragrafo padre.
Questa soluzione mi sembra un pň troppo pesante, perchč per tirarmi
fuori l'intero indice, devo eseguire un gran numero di query.
Immagino che esista una soluzione piů efficiente al problema (magari
usando xml). Potere aiutarmi?
Grazie

 fuori l'intero indice, devo eseguire un gran numero di query.
Dipende dal database, Oracle ha un particolare tipo di query per
risolvere la cosa.
Davide


:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).


userò SQLserver, ma vorrei trovare una soluzione valida in generale
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


beh mi sembra una buona idea, o almeno un buon punto di partenza, ma non ho
capito una cosa: che cosa indica il campo "priority"?
Pensi che inserire un campo livello (ad es il paragrafo 1.1.1 ha livello 3,
il par. 1.1.1.1. ha livello 4) possa dare una mano per ricostruire l'albero?


 userò SQLserver, ma vorrei trovare una soluzione valida in generale
Ciao egisto,
dato che utilizzerai SQL Server, prova a leggere questi 3 articoli di SQL
Server Magazine:
http://www.sqlmag.com/Articles/Index.cfm?ArticleID=16268
http://www.sqlmag.com/Articles/Index.cfm?ArticleID=19663
http://www.sqlmag.com/Articles/Index.cfm?ArticleID=16123
Ciao!
-- 
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org


Scusa se mi intrometto...ho giusto questo problema in Oracle. Mi sapresti
indicare qualche link a riguardo visto che sono tre ore che ci sbatto il
cranio e non ho cavato un ragno dal buco?
grazie, Teo

capito una cosa: che cosa indica il campo "priority"?
La priorita' di un nodo all'interno del sottonodo.
Se hai un capitolo, i suoi venti paragrafi li numererai da 1 a 20 (o da 0
a 19, secondo i gusti).
La "label" non e' altro che la concatenazione delle priorita' lungo tutto
l'albero per arrivare a quel nodo; probabilmente e' un campo che hai gia'
previsto.


"Teo" <No...@Null.Null> ha scritto nel messaggio
news:bqflpu$jcn$1...@newsread.albacom.net...

aggiungi un campo con un iferimento al padre e cerca CONNECT BY.
Ni hao, Lelle.

> aggiungi un campo con un iferimento al padre e cerca CONNECT BY.
Vado e mi documento!
Grazie mille
teo

 usando xml). Potere aiutarmi?
Una struttura ad albero puo' essere pensata come una serie di insiemi 
annidati.
Faccio un esempio che dovrebbe chiarire le idee. Prendi un albero, ad 
esmepio il pannello con le directory in Gestione Risorse) e comincia ad 
assegnare un numero ad ogni riga rispettando un ordinamento depth-first:
CODICE  NOME
--------------------
1       C:\
2       C:\dirA
3       C:\dirA\dir2
4       C:\dirA\dir3
5       C:\dirB
6       C:\dirC
7       C:\dirC\dir2
Per ogni directory possiamo memorizzare il primo e l'ultimo codice degli 
elementi contenuti (compresa la directory presa in considerazione):
LFT   RGT     NOME
----------------------------
1     7       c:\
2     4       C:\dirA
3     3       C:\dirA\dir2
4     4       C:\dirA\dir3
5     5       C:\dirB
6     6       C:\dirC
7     7       C:\dirC\dir2
Data questa base dati, e' facile scrivere il codice SQL per fare le 
operazioni piu' comuni.
Joe Celko e' stato il primo a dare un nome (ed a scriverci sopra un 
articolo) a questo modo di organizzare un albero in una base dati 
relazionale. Se cercherai con google "Celko Nested Sets" troverai 
moltissime informazioni sull'argomento.
Ciao.
-- 
Roberto Lupi

 7     7       C:\dirC\dir2
solo per vedere se ho capito...
Ni hao, Lelle.

 solo per vedere se ho capito...
Hai ragione, ho sbagliato a scrivere.
-- 
Roberto Lupi