Podrías tener todo en una tabla, categoría. Luego tenga una columna para parentID. Si parentID =0, es una categoría maestra, si es otra ID, ¿entonces es una subcategoría? Esta estructura admitiría categorías sub-sub... no estoy seguro de si eso es útil para usted.
Campos de ejemplo:
Table: category
categoryID
parentID
name
Datos de ejemplo:
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