I know there are two approaches: adjacency list and nested tree. It\'s said that adjacency list can become slow to use on traversal because of numerous queries. But I don\'t
There are more options than just the two you mention. There are:
See my answer to "What is the most efficient/elegant way to parse a flat table into a tree?"
Or a couple of books: