I have relational category & product tables. Categories are hierarchical. I will have queries based on category, for example
select * 
from products 
where CatId = 3
or
select * 
from products 
where CatId = 1
I have 6 level of category and 24 million row for products, I have to find fast and optimal solutions. My question is which structure is suitable.
I write some options, feel free to suggest a better alternative.
Current category table:
Id  ParentId   Name 
---------------------
1   null       CatA
2   null       CatB
3    1         CatAa
4    2         CatBa
Product table option 1
Id Cat Name
------------------
1  3   Product_1 
2  4   Product_2 
Product table option 2
Id CatLevel1 CatLevel2 ... Name 
-------------------------------------
1   1         3        .   Product_1 
2   2         4        .   Product_2 
Product table option 3
Id Cats Name 
------------------
1   1:3 Product_1 
2   2:4 Product_2 
 
     
     
    