Strukturujte svůj stůl takto:
Id Category ParentId
1 Jewelry NULL
2 Body 1
3 nose ring 2
4 arm ring 2
5 ear ring 2
-
-
Toto se nazývá samoodkazovací tabulka, tj. ParentId sloupce obsahuje buď NULL nebo hodnotu z Id sloupec stejné tabulky.
takže kdykoli potřebujete znát všechny přímé subcategories dané category , jednoduše vytvoříte dotaz jako :
Select * from CategoryMaster where ParentId = 2;
tímto způsobem získáte všechny podkategorie pro podkategorii Body .
Nejlepší na této datové struktuře je to, že můžete mít n úrovní podkategorií pro libovolnou podkategorii a bude stačit jedna jediná tabulka se 3 sloupci (minimálně).