>- see footer for list info -< I think your making things overly complicated. I use this method all the time and I have never had to do more than one query and have never had to do a QofQ. You simply loop over the query or structure for each node and look for children. If you query the data and put it in the correct order to begin with, then you only need to loop forward from the current position to extract children (if there are any), if not you just create the next node.
Russ > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Tim Blair > Sent: 11 January 2005 09:02 > To: Coldfusion Development > Subject: RE: [CF-Dev] Unlimited Hierarchy (recursive) > > >- see footer for list info -< > Russ, > > > The data is not going to change during the few seconds it takes to > > render the page, thus there is no need to perform hundreds > of queries. > > 1 query will do. > > Sorry, maybe I hadn't made myself clear. I think that for > small data trees (as appears to be the case in Lee's > situation) then the adjacency list model (i.e. parent/child > relationship pairs) is a perfectly acceptible method. > > For any tree stored using the adjancency list model you'll > need to do n queries to retrieve the entire table, where n is > the number of nodes in the tree. Yes, you can reduce the > database load by grabbing all data into a cached query and > then running a QoQ on it, but that's still n queries. The > nested set model allows retrieval of the complete tree (or > indeed any branch, or a route to a branch etc) with a single query. > > My point was not that the data could change in the few > seconds it takes to render the page, but over time. Each > time a new node is added, the whole tree must be refreshed, > resulting in another n queries. If the data changes often > then is simplicity of the model outweighed by the extra > processing time to generate the tree? > > Of course, there's always a downside to any method, and the > nested set model is no exception. Because of the way data is > stored, adding a node isn't just a case of adding the node > and then the relationship; you have to insert the node in the > correct place in the tree, possibly updating every other > node's position at the same time! This can lead to very > expensive inserts/deletes (and moving nodes is even more of a > nightmare!) but can easily be worth the extra processing. > > But the crux of it is: do whatever fits the situation and > that you're comfortable with! No point in adding complexity > when it's not going to bring any added benefit in terms of > speed or future code maintenance. > > Tim. > > PS. I seem to be writing a lot. Maybe I should stop and do some work? > :o\ > > -- > ------------------------------------------------------- > Badpen Tech - CF and web-tech: http://tech.badpen.com/ > ------------------------------------------------------- > RAWNET LTD - independent digital media agency > "We are big, we are funny and we are clever!" > New site launched at http://www.rawnet.com/ > ------------------------------------------------------- > This message may contain information which is legally > privileged and/or confidential. If you are not the intended > recipient, you are hereby notified that any unauthorised > disclosure, copying, distribution or use of this information > is strictly prohibited. Such notification notwithstanding, > any comments, opinions, information or conclusions expressed > in this message are those of the originator, not of rawnet > limited, unless otherwise explicitly and independently > indicated by an authorised representative of rawnet limited. > ------------------------------------------------------- > > _______________________________________________ > > For details on ALL mailing lists and for joining or leaving > lists, go to http://list.cfdeveloper.co.uk/mailman/listinfo > > -- > CFDeveloper Sponsors:- > >- Hosting provided by www.cfmxhosting.co.uk -< > >- Forum provided by www.fusetalk.com -< > >- DHTML Menus provided by www.APYCOM.com -< > >- Lists hosted by www.Gradwell.com -< > >- CFdeveloper is run by Russ Michaels, feel free to > volunteer your help > >-< > _______________________________________________ For details on ALL mailing lists and for joining or leaving lists, go to http://list.cfdeveloper.co.uk/mailman/listinfo -- CFDeveloper Sponsors:- >- Hosting provided by www.cfmxhosting.co.uk -< >- Forum provided by www.fusetalk.com -< >- DHTML Menus provided by www.APYCOM.com -< >- Lists hosted by www.Gradwell.com -< >- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<
