本当に木構造なら、自分は Nested Set Model 使う。
もちろん PostgreSQL で。