Normalmente una subcategoría y la categoría se guardan en la misma tabla, simplemente creando una FK nulable que apunte a si misma:
Cita: CATEGORIA(id_categoria, nom_categoria, id_cat_padre)
Al ser nulable, la categoría superior tiene el id_cat_padre en NULL.
Con un esquema así, pudes hacer una secuencia de dependencias de más de un nivel. Lo único que se complica es la consulta, porque cuantos más niveles, más alias hay que ysar sobre la misma tabla:
con un INNER JOIN con la misma tabla y un nuevo alias encadenando cada dependencia.
¿Se entiene?