我想为电子商务搜索功能添加搜索后过滤。目前数据存在如下:
Products(带有 BrandID) Brands(产品表中 BrandID 的外键) ProductDietType(产品和饮食类型的联结表) DietTypes(各种产品饮食类型) ProductDepartment(产品和部门的联结表) 部门
我想添加搜索后过滤器,用户可以选择多个品牌、部门、饮食类型来缩小结果集。
我能想到的就是这样编码:
如果(无)...如果(品牌)...如果(部门)...如果(饮食类型)...如果(品牌和部门)...如果(品牌和饮食类型)...如果(部门和饮食类型) ... 如果(品牌和部门和饮食类型) ...
我知道这是错误的。因为它的可扩展性不太好:每次添加新的过滤器时,代码分支的数量都会增加一倍。
您将如何进行整齐且可扩展的编码 - 因此,如果我想添加另一个过滤器 - 例如原籍国 - 我可以相对轻松地做到这一点。
我使用 C# 进行编码并使用 SQL Server 2008。
非常感谢任何帮助。
乔恩