This is quite a neat solution, but it has a few detracting points, most notably mass updates when you want to modify the tree.
It also seems slightly irrelevant; surely it's better just to read the structure into memory when the application starts and just work on the data structure in memory?
Reading the entire structure into memory brings all kinds of problems with it, such as knowing when to throw out your in-memory copy because the database changed. It is also problematic if the tree is large.
Reading the entire tree into memory can be effective if it never changes and is reasonably sized. But if that's the case, why are you storing it in a database? Why not just a data file?
It also seems slightly irrelevant; surely it's better just to read the structure into memory when the application starts and just work on the data structure in memory?