As you probably know all *"posts"* are stored in the same database table for *"Posts"*, *"Pages"* and any Custom Post Types.  

I mention the previous to emphasize that all *"posts"* have **the field `post_parent` available** and I have used it successfully to create a parent-child relationship between, for example, a `'restaurant'` post type and a `'restaurant-location'` post type.

The URLs are a good bit trickier, however, and I'm a fanatic when it comes to [**Well Designed URLs**][1] so you'd know I would look into is heavily.

I have implemented the code to do similar to what you ask for (for the restaurant/location example) but it **is extremely fragile** and has the potential **to create unwanted side effects** with other plugins so I'd really fear posting it here and in effect causing people more trouble than help. 

While some of the more hardcore WordPress devs that frequently [trac][2] and the [wp-hackers list][3] don't seem to think there's much of an issue with the URL routing system everyone else I know who has actually tried to use it for any other pattern besides blogging struggles with it and finds it infuriating. That's why I submitted [**this ticket**][4] and hope to have some dedicated time to address in the near future:

 - [**Evolve the URL Routing System**][4]

Currently using Well Designed URLs is just too damn hard and fraught with peril to be a viable option. So in the short term **I really recommend going with the standard URL layout** until I get enough free time to tackle it, or someone else improves WordPress's URL routing system or someone even hires me to fix it. 

Unfortunately **I know it wasn't the answer you were looking for** but it is an honest and heartfelt one.

Hope it helps.



  [1]: http://blog.welldesignedurls.org
  [2]: http://core.trac.wordpress.com
  [3]: http://lists.automattic.com/pipermail/wp-hackers/
  [4]: http://core.trac.wordpress.org/ticket/12935