我有两个表 - 'brands' & 'phones' 如下面的 sqlfiddle 所示
http://sqlfiddle.com/#!2/6da79
brands(id, brand)
phones(id, brand_id, phone)
我基本上想知道如何最好地实现将执行以下操作的搜索-如果用户输入“索尼爱立信”-它会显示该品牌的所有手机..但是如果他们输入搜索词“索尼爱立信 Xperia”,它将足够聪明地点赞并取回名为“Xperia P”的手机。
我可以理解逻辑 - 只是试图找到以最小的数据库占用空间来完成此操作的最佳优化方法。
我的伪代码如下所示:
- 从搜索关键字词(例如索尼)对品牌表进行 LIKE 查询
- 如果找到匹配项,则显示该品牌的所有手机(例如 Xperia P、W500)
- 如果用户输入“Sony Ericsson Xperia” - 我们将要从查询中删除“Sony Ericsson”,只需对“Xperia”执行类似查询并返回“Xperia P”
任何人都可以推荐最优化的方法吗?