The simplest(?) way to do tree-based queries in SQL
Подход к хранению древовидных данных в реляционной базе данных от P.J. Eby. Используется closure table, хранящая parentid, childid, depth. Получение дерева - за один sql-запрос (с join'ом к closure table).
http://dirtsimple.org/2010/11/simplest-way-to-do-tree-based-queries.html