Designing a table in SQL
The question of whether or not this is the "Best Design" is really more of a philosophical question that needs to have more information explained. If you are looking to merely manage a simple hierarchical set of items, then this is good design.

You're definitely going to have to be very mindful of referential integrity if items are being added deleted in the various layers of the parent-child relationship.