PHP编码价格比较工具

时间:2010-05-26 15:39:16

标签: php mysql

这是我第一次开发这样的工具你们都知道(根据价格和/或选项比较文章的可能性)

由于我从未这样做过,我想告诉我你对我看到的方式有什么看法:

在数据库上,我们有:

offer / price / option 1 / option 2 / option 3 / IDseller / IDoffer
best buy / 15$ / full FTP / web hosting / php.ini / 10 / 1
.../..../.... 

客户提出的要求:

"SELECT * FROM offers WHERE price <= 20 AND option1 = fullFTP"; 

我不知道你好吗。

另外我想知道,如何避免同一卖家的多重显示(不是在DB上,而是在前端)。 想象一下,你有多个优惠,价格<= 20,同一卖家选择FullFTP,我不希望他在比较器上显示5次。

如果您有任何建议;)

由于

4 个答案:

答案 0 :(得分:1)

您想了解数据库规范化和第3范式。

您可能还需要为行添加时间戳,并在查询中包含这些范围。

您应该将选项移动到单独的表中,并使用关联表中的交易来聚合选项。

  

选项(id,description)

     

卖家(身份证,姓名,说明,......)

     

offer(id,seller_id,title,description,price,entry_date,start_date,end_date)

     

offer_options(offer_id,option_id)

这让你更接近你需要的地方,它会让事情变得更容易。

下一步...... SQL加入

答案 1 :(得分:1)

如果您不希望多次显示卖家,请在SQL中使用“GROUP BY IDseller”。

答案 2 :(得分:0)

为避免显示多个卖家,请在WHERE子句后使用GROUP BY功能。

"SELECT * FROM offers WHERE price <= 20 AND option1 = fullFTP"; 

请确保您在每个供应商中进行过滤。据我所知,你的初始设置是合理的。

这个问题似乎很笼统。

答案 3 :(得分:0)

为什么不使用 Apache Lucene 来实现前端功能? Zend库是在PHP中提供Lucene功能的。

继续将数据存储在数据库中,但也将其导出为Lucene索引。

好的,这是价格比较,但它对选项有意义。只需将所有选项放在一个字段中,例如以逗号分隔,然后使用文本搜索。