这是我第一次开发这样的工具你们都知道(根据价格和/或选项比较文章的可能性)
由于我从未这样做过,我想告诉我你对我看到的方式有什么看法:
在数据库上,我们有:
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次。
如果您有任何建议;)
由于
答案 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索引。
好的,这是价格比较,但它对选项有意义。只需将所有选项放在一个字段中,例如以逗号分隔,然后使用文本搜索。