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ě).