Thiết kế của bạn là phù hợp. Tôi là một nhà phát triển cơ sở dữ liệu, vì vậy tôi có thể hiểu xu hướng có Danh mục và Danh mục con trong một bảng, nhưng bạn không bao giờ có thể làm sai bởi KISS.
Trừ khi bắt buộc phải có hiệu suất cực cao hoặc hệ thống phân cấp vô hạn (tôi đoán là không), bạn vẫn nên thực hiện.
Nếu có thể liên kết nhiều danh mục con với một sản phẩm là một yêu cầu, theo quan điểm của @ Mikael, bạn sẽ cần một thiết lập như thế này để tạo mối quan hệ nhiều-nhiều thông qua một bảng nối / giao nhau, 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))
Hy vọng điều đó sẽ giúp ...
Eric Tarasoff