hola,
yo lo haria con 2 tablas y en la tabla subcategorias hacer un campo que referencie a la tabla categorias. Entonces para mostrar estos datos haria esto en PHP (resumidamente):
select * from categorias
while (recorre todas las categorias obtenidas)
{
echo "nombre categoria"
select * from subcategorias where idcategoria= id categoria obtenido en 1ª select
while (recorre todas las subcategorias de la categoria)
{
echo "nombre subcategoria"
}
}
Si con este codigo no te aclaras, escribe otro post y ya te lo pongo mas concreto,ok?
un saludo