First off, it took me a few days to get my head around the concept of having a hierachical table. Specifically, where I could store "parents" and "children" in the same table. Apparently this is acceptable, and necessary, if you want a hierarchical structure with indefinate children.
e.g.
Parent
----Child 1
----Child 2
So assuming your structure is ("ID", "Name", "ParentID") in a table, how exactly would you enforce referential integrity? What is the acceptable method? I would assume you would never do a straight "delete" of a row in the table, but instead create a stored procedure to check for children.