Allora. io non conosco bene i vini (anzi, non li conosco proprio) Quindi non so dirti se hai fato bene. Chiariscimi un momento le idee: prendiamo il montepulciano: è un tipo di vino o è una categoria di vini come potrebbe esserlo il vino rosso?
Cioè, montepulciano sotto di se ha altri tipi di vino?
Detto questo non hai capito come funziona il tutto.
Le categorie stanno in una tabella, i prodotti stanno in un'altra.
Ora che siano vini, pezzi di computer, macchine, ragazze o qualsiasi cosa non ha importanza: le due cose sono in due tabelle diverse. Le tabelle stesse andranno messe in relazione mediante il campo parent che nella tabella che contiene i prodotti indica la cat di appartenenza. Di conseguenza le tue tabelle saranno popolate in questo modo:
TEBELLA CATEGORIE
id | name | parent
1 | vini | 0
2 | rosso | 1
3 | bianco | 1
4 | spumanti | 1
TABELLA VINI
id | name | parent
5 | sagrantino | 2 (l'id è relativo alla tabella categorie)
6 | montepulciano | 2
7 | asti | 2
8 | trebbiano| 3
9 | tavernello| 3
10 | chianti| 3
11 | cinzano| 4
12 | brut| 4
13 | chardonay| 4
Cmq se vuoi un consiglio vatti a leggere la guida sui dati gerarchici che sta su freephp.it. Potresti caire molto meglio come funziona il tutto.