Thank you very much for your answer.

I read the article.
I've understood that this nested tree model (with the "worm", I liked the image), permits to retrive very easiely the path of a node, and some other things.
But : I've understood that if we want to modify the tree, all left and right numbers of all the nodes of the tree have to be changed. Why not... But biggest problem, I don't see how it permits me to get the whole tree in a recursive maner. I haven't seen a request that would give me something like that :
(root(node1, node2(node3, node4)))
corresponding to :
root
| |
node1 node2
| |
node3 node4


Kevin Fries wrote:

My advice is to consider an alternate storage approach.
Instead of storing parent id's, store the trees using the Nested Set
model.
http://www.dbmsmag.com/9603d06.html

About halfway down the article he presents a model where you never store
the parent id, but you do store two columns (LEFT and RIGHT) which
represent the boundaries of the child records, and their respective LEFT
and RIGHT information.

That sounds complicated, and it is. But it is an ANSI-compliant
solution, and it can be used to get terrific results.

His article is followed up in the april and may issues, as well, also
online.

In addition, you can follow up his article by looking in Usenet groups
for the term "Nested Set Hierarchy" or "Nested Set Model".


Good luck with it. Kevin

-----Original Message-----
From: Grégoire Dubois [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 02, 2003 6:54 AM
To: [EMAIL PROTECTED]
Subject: Conception - Tree - Recursivity -Address book - Query speed



Hello all,


I am putting multiple "address book" (trees) into a MySQL database. These "address book" are made of "directories" and "persons".

It gives something like that for the tables :
Directory
--------------
ID
Name
ID_father (the reference to the father directory)



Person ------------- ID Name ID_father (the reference to the father directory)


Creating the tree doesn't give me problem. Where I ask me some questions, is the speed to get the whole tree from the database in a recursive way.
The way the tree is defined in the database, I will be obliged to make for each node a SELECT to know all its children, then do the same for the children, etc... Each SELECT will give me a ResultSet. And from each


ResultSet I will know if the node has got childrens, and if yes, I'll have to make new requests to the database (one for each child), etc...

As I will have a lot of clients that will ask for those trees, I am wondering if this technique won't take too much ressources and be too
slow.


I know that Oracle uses CONNECT BY PRIOR for this type of problem. But, as this functionnality isn't available yet in MySQL, I'm asking you for the best solution you would think of.

Thank you very much for your help.

PS : Any website talking about database conception would be very helpfull to me if you know some.








-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to