[link|http://www.dbmsmag.com/9809d05.html|http://www.dbmsmag.com/9809d05.html]

I've found that the helper table (in figure 3) is a better solution for traversing trees from an aritrary starting point when you have a system in which the tree is changing often.

It's a trade off between space and speed. The table can take up quite a bit of space, but it's relatively easy and quick to update and it's fast to query against.