At my place of employment, I work a great deal with somewhat complex hierarchical data as part of our measurement and analysis software. Thus, recursion and I have become rather close friends over the last few years. While rewriting an old website, I needed to turn a set of four relational tables into a hierarchical data structure. The top level table held self-referencing relationships as well as child relationships to table 2. Tables 3 and 4 were your basic "run of the mill" child tables up through table2.