What is the problem with nested sets?
Calculates lft / rgt values ββwhen adding / removing nodes?
Pretty confident with a little careful planning, you can set it up, so you only need to make rare recommendations. I did not complete this, but did some planning for the system once (the client does not need the system at the end!)
One, multiplies the values, say 1000, the first time they are calculated. Then, if you add node, you can simply insert numbers between the values. Its only when there are a large number of inserts, you begin to finish the numbers. Low priority batch process, can resell the tree to free up numbers for fresh inserts.
Deletion can also be archived using numbers. In fact, a node without children is easy. There was no recount. It turns out more difficult if the children, but I think it is doable.
source share