http://qs321.pair.com?node_id=370205

Monks,
I've just released my first module to CPAN, DBIx::Tree::NestedSet. It implements a nested set tree that uses DBI for storage. For more information on the theoretical advantages of a nested set tree, see the POD, especially the See also section for more in-depth information.

The quick version: Nested set trees allow you to find parents, children, and siblings of nodes in a tree with one SQL statement at the expense of more "costly" updating. Given that most webapps fall into the "many reads, few writes" model a nested set tree can offer significant performance advantages over the typical adjacency list model.

DBIx::Tree::NestedSet includes a CGI::Application and HTML::Template based "helper class" named DBIx::Tree::NestedSet::Manage that gives you a CGI (or mod_perl) based interface to your nested set tree, partially to be useful and partially to demonstrative of the API.

Rather than me blathering on repeating what's already in the documentation, please look at the POD and the README for further info.

I'm looking for folks to test this on other RDBMSs and patches are always welcome.

It's a testament to the mighty CPAN (or a slight on my skills. . .) that I've been programming perl for over 5 years and this is the first module I've needed/wanted that wasn't already up there in one form or another.

-Any sufficiently advanced technology is
indistinguishable from doubletalk.

My Biz