搜索三个MySQL文本字段组合的最快且最具扩展性的方式

时间:2013-11-25 10:19:44

标签: php mysql json

我在MySQL表中有三个字段 - 品牌,范围和型号以及大约8,000个型号,每个型号都有品牌和范围。

我正在创建一个jquery自动完成搜索,它使用json响应将10个最可能的匹配返回给用户输入。只要输入了至少3个字符,json查询就会将用户输入与Brand + Range + Model的串联相匹配。

该系统最初将由一小群人使用,但最终可能会被数千人使用,因此我正在努力找出执行此搜索的最有效方法。

我提出的三种可能的方法是:

  • 在模型表格中创建一个新字段,该字段每天更新一次cron作业,以创建一个带有品牌+''+范围+''+模型的单个字段并搜索此字段
  • 在MySQL查询中包含连接并搜索此
  • 使用连接创建视图并搜索

这些方式中的哪一种(或者可能是不同的方式)是组合三个字段以便进行搜索的最快且最具扩展性的方式?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

解决这个问题的常用方法是提供包含每个元素的选择框。

当选择品牌时,Ajax会填充范围范围。

当选择一个范围时,将填充模型,依此类推......

这可以避免拼写错误,例如“Madza”。

如果你描述的GUI和用例确实管理你的sql选择,你必须允许一个自由文本字段,你可以而且必须让你的用户键入“Mazda 6 spacewagon”然后根据你的3字母规则输入“Maz”将触发一个选择,也可能是

SELECT brand, range, model where brand LIKE "$brand%"; 

结果太过分散。