Well, benchmark mysql doing this task in some simple, sythetic way, to see how it responds when the database is fairly large and has a lot of records.
Mostly try to write very efficient SQL. In mySQL the way you do this is often very different from the way you'd do it in oracle or postgresql, so read the docs that come with it on how to make things go faster.
I assume that you'll use a recursive function to find and display each sub-record, and it will all be in one table, since each subrecord could exists at multiple levels down depending on which larger records it is a part of.
Are you familiar with inner self-joins?