Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 什么';处理多个搜索选项的最佳方式是什么?_Search_Interface Design - Fatal编程技术网

Search 什么';处理多个搜索选项的最佳方式是什么?

Search 什么';处理多个搜索选项的最佳方式是什么?,search,interface-design,Search,Interface Design,这可能是一个已经存在了20年的问题,但我还是要问。我有一个屏幕,有多个搜索选项。有些可以合并。有些是排他性的 例: 按名字和姓氏搜索 或 按年龄搜索 处理这个问题的最佳方法是什么?我是否在应用程序中处理这个问题,或者调用多个函数中的一个,或者调用一个包含一大堆if/else的函数。做一系列的“如果/否则”似乎太过时了。难道没有更有效的方法吗 我建议使用生成器将各种谓词收集到一个对象中,然后将该对象传递给生成相关查询的函数/方法 使用此方法以面向对象的方式构建SQL查询。对使用包含大量if-els

这可能是一个已经存在了20年的问题,但我还是要问。我有一个屏幕,有多个搜索选项。有些可以合并。有些是排他性的

例:

按名字和姓氏搜索

按年龄搜索


处理这个问题的最佳方法是什么?我是否在应用程序中处理这个问题,或者调用多个函数中的一个,或者调用一个包含一大堆if/else的函数。做一系列的“如果/否则”似乎太过时了。难道没有更有效的方法吗

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


使用此方法以面向对象的方式构建SQL查询。对使用包含大量if-else的方法与构建器方法构建查询字符串的优缺点进行了很好的讨论。

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

对于存储过程,主要目标是不包含包含concatation的sql

在存储过程中,我倾向于为此使用isnull语句字符串来使用param或字段值(如果param为null)

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