Well, to build my menu my menu I use a db similar structure like this
2 Services 0
3 Photo Gallery 0
4 Home
I would suggest that you look into pre-ordered tree traversal. There is an article on the issue at:
Managing Hierarchical Data in MySQL
Effectively, you take each page as a 'node'. Each node has a reference to it's parent. When you change the layout of the nodes (add a child, move nodes, etc), you recalculate a 'left' and 'right' value for each node (the article above explains this in great detail, with links to source code in php). What you end up with is the ability to very quickly determine if a given node is a direct or indirect child of any other node, as well as get all the child nodes of a given node.