I'm creating a site for a radio station. The hierarchy is simple - there are different categories (Music, Culture, Sports, etc.) and inside them are specific shows (e.g. Music -> Long John's Rock Bomb).
At first, I wanted to create a content type for every show there is. This would allow me to create user roles for "Sports journalist" and "Sports main editor" and then assing specific content types to specific people. A sports journalist could only create a few sports shows and edit his own, while a sports main editor could edit all sports shows. Music would be out of their scope.
But since it's not reasonable to have nearly identical content types (not what they are for), I solved my hierarchy using a taxonomy. I created a tree where radio topics (Music, Culture, ...) are top level terms and shows are child terms, categorised under them. This is also very reasonable for presentation to the page users, as they simply navigate through the taxonomy to find shows they want.
The problem I have now is I cannot limit my journalists to only be allowed to add (or editors to only edit) posts under certain topics. There are some modules (Taxonomy Access Control) that allow you to limit users to specific taxonomy, but none or very little available for D7 (so far, I only found TAC Lite, it's a dev version, only used on a couple of sites).