Desain Anda sesuai. Saya seorang pria database yang menjadi pengembang, jadi saya dapat memahami kecenderungan untuk memiliki Kategori dan SubKategori dalam satu tabel, tetapi Anda tidak akan pernah salah dengan KISS.
Kecuali kinerja ekstrem atau hierarki tak terbatas adalah persyaratan (saya rasa tidak), Anda siap melakukannya.
Jika dapat mengaitkan beberapa subkategori dengan suatu produk adalah persyaratan, menurut pendapat @Mikael, Anda memerlukan pengaturan seperti ini yang menciptakan hubungan banyak-ke-banyak melalui tabel join/intersect, 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))
Semoga membantu...
Eric Tarasoff