Provided your database can implement prefix string searches as an indexed range search, materializing the path is conceptually simple and avoids the write/update overhead of nested sets. I used this ...