Each product may have a parent or gaurdian category, a category, along with a subcategory.
Wouldn't it better will have a stabilized database with integers representing parent category, category and subcategory around the product table?
Its better to achieve the category table separate and also have ids within the product table. else you should you directly store category info in product table you'll finish track of consistency and duplication.
you could join the table while tugging the items, if you're worried of joining you may also cache the groups table within the application side and perform a research to the category hash map while selecting a product in the table to understand about its parent and sub category info.