Organizing Entry, Section, and Category hierarchies
This is Craft CMS, so there is no 'correct' way of doing it. With the routing and slug manipulation you can achieve this is many ways.

However, to me it feels like 'Categories' would be the way to go. To get your URL hierarchy that you have suggested, you'd need to set the following for the Category URI format in Settings > Categories:

{% if object.level == 1 %}{slug}{% else %}{parent.uri}/{slug}{% endif %}