Váš design je vhodný. Jsem databázový člověk, který se stal vývojářem, takže chápu sklon mít kategorii a podkategorii v jedné tabulce, ale s KISS nikdy neuděláte chybu.
Pokud není požadavkem extrémní výkon nebo nekonečná hierarchie (hádám, že ne), můžete začít.
Pokud je požadavkem možnost přidružit více podkategorií k produktu, podle @Mikaela byste potřebovali takové nastavení, které vytvoří vztah mnoho k mnoha prostřednictvím tabulky spojení/průniku, Product_SubCategory:
CREATE TABLE Product (ProductID int, Description nvarchar(100))
CREATE TABLE Product_SubCategory (ProductID int, SubCategoryID int)
CREATE TABLE SubCategory (SubCategoryID int, CategoryID int, Description nvarchar(100))
CREATE TABLE Category (CategoryID int, Description nvarchar(100))
Doufám, že to pomůže...
Eric Tarasoff