我有一些表,它们之间的关系如下:

我有相互链接的级联下拉框,即当您选择国家时,该国家下的地区将加载到地区下拉列表中。但现在我想将下拉菜单更改为基于Ajax的自动完成文本框。
我的问题是,我应该有多少个文本框?如果我有一个文本框来处理像"search by location“这样的所有事情,我就需要改变表格设计,或者每个国家、地区、城市等都有一个文本框,
如果我有这样的文本框,用户可能不知道,很少有地方是地区或城市,例如奥克兰,新西兰是地区而不是城市。
他们可以在城市文本框中搜索地区,并在地区textbox...now中搜索城市,他们有一个下拉列表,他们可以从下拉列表中看到他们的地区,“奥克兰肯定会在地区”
我可能无法从各个文本框中找到我想要的内容,
我需要一些从数据库和界面的角度重新设计的建议。
发布于 2012-08-05 11:43:39
您的模式很好。但听起来用户至少想要的是: 1.一个google风格的自由格式文本域,他们只需要输入单词,但是...2.以组合方式显示匹配结果的子集。
所以事情是这样的:类似搜索的功能并不是设计关系数据库的目的,这基本上就是你遇到的问题。也就是说,虽然MySQL不是我的专业领域,但似乎确实有合理的全文搜索支持(MySQL Full Text Search)。
也许您可以在每个描述字段上建立全文索引,并发出五个不同的查询。或者,如果您愿意使用一个糟糕的解决方案,可以使用一个单独的BUSINESS_SEARCH(business_id,concat_description),其中concat_description只是将所有相关的" description“字段组合在一起;尽管您需要考虑描述更新。
但我不知道全文的性能含义是什么。如果它很重要,我会将这些查询卸载到服务器的单独副本中。
我个人的感觉--完全没有证据支持--是以后会遇到性能问题。你有没有考虑过加一个插件?一个快速的谷歌搜索引擎显示Google-like Search Engine in PHP/mySQL。最大的缺点是,您正在引入一项未经验证/不熟悉的技术的所有陷阱。
对于任何一种方法,我认为你都有一些适合你的研究。
祝好运!
https://stackoverflow.com/questions/11812199
复制相似问题