Well if you plan on having hierarchies, check out this thread:
http://forums.mysql.com/read.php?10,32818,32818#msg-32818
and this article mentioned there by Erin
http://www.vbmysql.com/articles/managing-hierarchical-data-in-mysql.html
Short version here: The structure you describe is capable of storing the hierachies just fine, and it is totally non-redundant, which is fine - when you are adding or updating data. When you are querying data, it's generally not a pleasant solution.
Problems generally arise in case you want to peek up or down a arbitrary number of levels from some node in the hierarchy. MySQL does not have language construct to deal with this, and in say Oracle, which does support it (CONNECT BY), it's still subject to lot's of restrictions.
Good news is, it can all be avoided, at the expense maintaining some redundancy. This will give you a slightly harder time maintaining integrity whilst inserting, updating and deleting. How? read that in the article.