[eluser]esra[/eluser]
[quote author="Colin Williams" date="1202001040"]Maybe I'm missing something, but can't you have one 'term' table with term_id | parent_id | name | description? Then, any terms with a parent_id of 0 is a root/vocabulary?[/quote]
You're referring to the 'adjacency list' model rather than 'modified preorder tree traversal' (mptt) model, also called nested sets. Both are models for allowing a relational database to handle hierarchies.
There are cases where mptt performs better than adjacency list and vice versa. Data retrieval is much faster using mptt but table reconstruction is slower because an entire tree needs to be rebuilt when a tree branch is removed or added. Data retrieval with adjacency list model is slower than mptt, but major changes to the database are faster to update because the changes only affect part of the tree.
Thunder UK's nested sets model class on the wiki should include a link to the original forum thread which contains several pages discussing the merits of using both approaches to handle heirarchies.