?關于無限級分類數據庫表結構設計問題,遍歷某分類下所有產品 效率
數據庫表結構是這樣的:
[Category] 類別表
Id(int) 類別IdParentId(int) 父類IdName(nvarchar(50)) 類別名稱
[Product] 產品表
Id(int) 產品名稱Name(nvarchar(50)) 產品名稱CategoryId(int) 類別Id(對應 [Category].Id)Info(ntext) 介紹信息……
?
?
[Category] 類別表數據Id ParentId Name
1 0 服裝2 1 男裝3 2 襯衫4 2 長褲5 2 短褲6 2 T恤7 2 外套8 2 衛衣9 2 西裝10 ?4 ?休閑褲11 ?4 ?西褲12 ?4 ?牛仔褲13 ?4 ?運動褲
?
?
?
[Product] 產品表數據 不再一一舉例Id Name CategoryId Info1 23……
?
這樣設計的結構,存在很嚴重的效率問題,假設我想找出某分類(假設為男裝)下所有的產品,就需要用遞歸算法,找出(男裝)下的所有子分類,然后對 產品表進行 條件 in 查詢,得到產品列表
?
找出所有男裝產品
首先寫程序,遞歸出 男裝分類下的子類列表(2,3,4,5,6,7,8,9,10,11,12,13)
然后用 sql 查詢出來
select * from [Product] where CategoryId in(2,3,4,5,6,7,8,9,10,11,12,13)
這樣做實在是太糟糕了
?
那么該怎么設計呢?
關于無限級分類數據庫表結構設計問題,遍歷某分類下所有產品 效率
森林海
2018-12-06 19:20:22