0

假设我有一个包含学生信息的数据库,并且我有以下字段:

1) 年龄组 2) 课程名称 3) 原籍国

如果我要构建一个搜索功能,假设用户想要搜索匹配的学生会更好:

年龄组或课程名称或原籍国?

或者我应该假设用户想要搜索满足所有条件(即 AND 逻辑)的学生?

最佳做法是什么?我认为人们的意思是 OR 大多数时候,因为这给出了最多的结果。

你怎么看?

非常感谢您的反馈!!

4

3 回答 3

0

如果这是一个大问题,请让人们选择。否则,这取决于它的常用方法。我希望看到 AND 这样我就可以产生最严格的输出,而不必筛选我不想要的东西——但我不知道你的用户群是什么样的;你应该问他们。

于 2013-01-26T02:10:03.527 回答
0

这是用户焦点小组的绝佳候选者。如果您正在构建一个网站(而不是软件产品或公司内部应用程序),而您无法访问组织焦点小组,您可以尝试以调查或联系表的形式征求用户的反馈。

于 2013-01-26T02:13:34.610 回答
0

您总是可以针对所有这些字段创建一个全文索引,然后对索引进行搜索。

CREATE FULLTEXT INDEX giveitaname ON mytable (agefield, coursename, country); 

然后像这样查询索引:

SELECT * FROM mytable WHERE MATCH(agefield, coursename, country) against ('%search_variable_here%')

现在,您的搜索将适用于部分单词、不匹配的订单,并且可能会更加相关并产生更少的零结果结果。

同时,我个人不会太担心 OR 或 AND 之间的负载,特别是如果您的索引设置正确。您应该根据您正在使用的数据集以及对您的用户群最直观和最相关的数据集做出选择。

于 2013-01-26T05:39:19.437 回答