处理多个搜索选项的最佳方法是什么?

时间:2009-08-10 13:44:03

标签: search interface-design

这可能是一个已存在了20年的问题,但无论如何我都会问。我有一个有多个搜索选项的屏幕。有些可以合并。有些是独家的。

前:

按名字和姓氏搜索

OR

按年龄搜索

处理此问题的最佳方法是什么?我是否可以在应用程序中处理此问题,并使用一大堆if / else来调用许多函数中的1个或1个函数。做一系列if / else只是看起来过时了。是不是有更有效的方法?

2 个答案:

答案 0 :(得分:2)

我建议使用构建器将各种谓词收集到对象中,然后将该对象传递给生成相关查询的函数/方法。

SQLORM Java library使用此方法以面向对象的方式构建SQL查询。 This page提供了一个很好的讨论,使用一个带有很多if-else的方法来构建查询字符串的优缺点,而不是构建器方法。

答案 1 :(得分:0)

我会验证哪些字段可以在前端一起完成。

对于存储过程,主要目标是没有带有连接的sql。

在sproc中,我倾向于使用一串isnull语句来使用param或字段值,如果param为null。

正如你所说,它不是一个新技巧,但它的工作原理比每次执行生成新的sql要快得多。它还具有易于预测的执行计划。