primary,
la estructura en una tabla sería algo parecido a esto:
PKcat, nombreCat, padreCat, orden
imaginemos esto; categoria1, con varias subcategorías, subcategoria1, subacategoria2, y luego la subcategoria1 tendría otra subsubcategoria1. Y también una categoria2 sin subcategorías
PKcat, nombreCat, padreCat, orden
1, categoria1, NULL, 1
2, subcategoria1, 1, 1
3, subcategoria2, 1, 2
4, subsubcategoria1, 2, 1
5, categoria2, NULL, 2
Como ves una tabla te permite guardar todo, pero para luego sacarlo necesitarás consultas usando autojoin. Son consultas de tipo jerárquico de MySQL. Sobre consultas jerárquicas en MySQL puedes ver aquí:
http://mikehillyer.com/articles/mana...data-in-mysql/
por lo demás, el trabajo de manera recursiva con el lenguaje de programación podría también ayudarte.
Pero si todas las categorías tienen subcategorías y todas las subcategorías tienen subsubcategorías en una estructura siempre igual, podrías usar tres tablas relacionadas, una para categorías, otra para subcategorías y otra para subsubcategorias. Pero no sé si será tu caso. Eso facilitaría las consultas, claro.