Vous pourriez avoir tout dans une table, une catégorie. Ensuite, ayez une colonne pour parentID. Si parentID =0, c'est une catégorie principale, si c'est un autre ID, alors c'est une sous-catégorie ? Cette structure prendrait en charge les sous-sous-catégories... je ne sais pas si cela vous est utile.
Exemples de champs :
Table: category
categoryID
parentID
name
Exemple de données :
categoryID : 1
parentID : 0
name : hot
categoryID : 2
parentID : 0
name: cold
categoryID : 3
parentID : 2
name : a soup that's cold
categoryID : 4
parentID: 1
name: a soup that's hot