Ваш дизайн подходит.Я - разработчик баз данных, ставший разработчиком, поэтому я могу понять склонность иметь категории и подкатегории в одной таблице, но вы никогда не ошибетесь с помощью KISS.
Если только не требуется чрезмерная производительность или бесконечная иерархия (ядумаю, нет), вы готовы идти.
Если возможность связать несколько подкатегорий с продуктом является требованием, к точке зрения @ Микаэля, вам понадобится такая настройка, которая создаетотношение «многие ко многим» через таблицу соединения / пересечения, 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))
Надеюсь, это поможет ...
Эрик Тарасофф