使用Sql深入搜索

时间:2012-06-03 06:32:44

标签: asp.net tsql

现在看来很多电子商务网站都在提供搜索商品的产品过滤器。例如,您可以按宽度,高度,电视尺寸,家具类型等搜索项目。

现在,如果它只是一个简单的网站,只有几个可搜索的过滤器,那么它很容易做到,但我正在管理一个销售家具,家电和放大器的网站。电子产品和每个类别都有很多子类别。例如:

设备:          洗衣店                 可搜索的属性(垫圈,干燥器,垫圈类型......微波,宽度,高度)  电子产品          电视(电视尺寸,宽度)          游戏(ps3,类型,销售日期)

我相信你明白了。 ecomerece网站提供基本类别,然后每个类别都可以有子类别或可分类过滤器来深入搜索。

使用MS SQL Server& amp; Asp.net。我有兴趣在SQL中创建一个优化的可搜索模式。

任何提示,欢迎提出建议。

由于

2 个答案:

答案 0 :(得分:1)

您可以使用Entity-Attribute-Value model
简单的概念是,不是为每个模型的属性(如ps3游戏的类型,销售日期等)设置一个列,而是有另一个名为Attributes的表,其中将列出属性及其类型,以及第三个表,您的主要模型实例(ps3游戏)将通过3列与属性链接:

  • 型号ID(ps3游戏的ID)
  • 属性ID
  • 属性值

这个概念可能更难管理,需要更复杂的查询,但它会以最简单的方式添加新产品/分类。
当然,使用这个模型,如果很少有产品共享一个共同的属性(如同PC游戏和ps3游戏共享一个类型),你将只定义一次属性,并且两个模型将链接到它,允许共同搜索查询不同的产品。

答案 1 :(得分:0)

单个问题太多了。寻找一本关于数据库设计的书。对于向下钻取,您可以拥有一个包含尽可能多的PK列的表。但是当谈到细节时,你需要单独的桌子,因为电视没有与立体声相同的细节。