I've achieved the desired output by creating a vocabulary of taxonomy terms which is essentially just a flat list of foreign keys. There is no semantic representation of a hierarchy here.
NOTE: This is a different example than the event calendar I described in the comments of my initial post, however the data model is the same.
- Parent content type (Rich Menu) contains this taxonomy term field, in this example called "Menu".
- Child content type (Rich Menu Item) also contains the "Menu" taxonomy term field.
- If Rich Menu Item is a child of Rich Menu, the two term fields are set to match. NOTE: I wonder if this idea can be simplified using node references (References module) instead of taxonomy.
Then I created a new block view called "Rich Section Menu". This block will display the parent content type, Rich Menu, filtered by the taxonomy term from the field "Menu" (value = Section). Create an attachment to be displayed after the block which will render a list of children from the Rich Menu Item content type. The child content type will also be filtered by the Menu term field (value = Section). NOTE: Adding the relational term field to the list of filters is only necessary if you expect to have multiple parent/child relationships that share the same content types.
Tried to post screenshots of my Views configuration for clarity, but my reputation isn't high enough.
This achieves the output I desire, however it's a bit simplistic. I would prefer to create a semantically correct parent/child hierarchy using taxonomy or node references, and have Views render that output in a single block, without an attachment, with support for children more than one level deep.
So this works, but is there any way that I can do it better?