_______________
| Nodes         |
|---------------|
| id            | ---
| [more fields] |   |
| parent_id     | >--
|_______________|


And then you join the table with itself as needed. Do note that you'll need a 
self-join for every level you query, and that every self-join incrementally 
slows down the query.

It may be beneficial (actually, I'm pretty sure it will be :-) ) to implement 
the recursion in software as necessary, simply follow the branch you want and 
check wether there are children at each turn; or pick up the child and go back 
up until parent_id is NULL.

Depending on what you want/need, you could also add a depth field, so you don't 
have to loop to figure out where you are in the tree, etc.

Storing node x/y/z as an identifier, as you suggest, is also an option with 
it's own benefits and downsides; nothing prevents you from taking any or all of 
those approaches at the same time.


----- Original Message -----
> From: "Larry Martell" <larry.mart...@gmail.com>
> To: "Steven Siebert" <smsi...@gmail.com>
> Cc: "mysql mailing list" <mysql@lists.mysql.com>
> Sent: Friday, 22 November, 2013 3:17:44 PM
> Subject: Re: XML to RDB
> 
> Yes, I will need to query the data, and yes, it's app specific to the data.
> The parent-node structure will meet my needs if I can figure out how to
> preserver the unbound multi level nodes. There will be a higher level
> table, which will have the file name, date received, and other identifying
> info that will be start of the query. The nodes will have a foreign key
> back to the file table. The queries will be something like "get the abcd
> parameter from node x/y/z from the file foo.xml from 10/10/13". I guess I
> can just store the x/y/z in the node table (as opposed to trying to
> represent z is child of y which is a child of x in 3 different tables or
> rows.
> 

-- 
Unhappiness is discouraged and will be corrected with kitten pictures.

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

Reply via email to