【问题标题】:Design pattern for filtering products?过滤产品的设计模式?
【发布时间】:2011-05-24 22:18:59
【问题描述】:

如果您访问像 NeweggB&H 这样的网站,当他们显示产品列表时,有几个过滤选项,如品牌、价格、尺寸、颜色等。

对于这样的事情,什么是好的设计模式?

另外请记住,并非所有产品都具有相同的选项 - 显示器将具有最大分辨率和屏幕尺寸,HDD 将具有容量和连接类型等。

我唯一能想到的就是在数据库中使用EAV架构来绑定每个产品的所有过滤选项,然后在加载所有产品时,拉取所有选项并显示适用类别的过滤选项.但这听起来并不像它可以很好地扩展,并且仍然让我想知道如果显示的只有一半产品具有特定选项(屏幕尺寸),我该怎么办。

product(id, name, price, etc.) // 1, "Cool Monitor", 200.00

filter_options(id, option) // 3, "Screen Size"

product_filters(product_id, filter_id, value) // 1, 3, "22.in"

我不想重新发明轮子或想出一个过于复杂的解决方案,如果这样的事情已经有一个已知的模式。我猜有,因为这些天我经常看到这个。

如果重要的话,我会在 PHP、CakePHP 1.3 和 MySQL 中构建它。

【问题讨论】:

    标签: database design-patterns filter


    【解决方案1】:

    使用规范模式。它就是为此而生的。

    虽然我找不到一个好的 php 实现。但构建起来应该没有那么难。

    【讨论】:

      【解决方案2】:

      我要做的是为您要查询的每个表创建一个过滤函数并分别调用每个表,它们将处理它们过滤的方式和内容。

      我的 $.02

      http://dev.mysql.com/doc/refman/5.1/en/adding-functions.html

      【讨论】:

        猜你喜欢
        • 2019-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-11
        • 2012-09-16
        相关资源
        最近更新 更多