On Mon, Nov 25, 2013 at 4:29 AM, Johan De Meersman <vegiv...@tuxera.be>wrote:

>  _______________
> | 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.
>

Thanks for the reply. I've had very bad performance in the past with
multiple self joins on large tables. I think I will end up going with using
x/y/z.


>
> ----- 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.
>

Reply via email to