【问题标题】:What's the best way to handle multiple search options?处理多个搜索选项的最佳方式是什么?
【发布时间】:2009-08-10 13:44:02
【问题描述】:

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

例如:

按名字和姓氏搜索

按年龄搜索

处理此问题的最佳方法是什么?我是否在应用程序中处理这个问题,或者调用许多函数中的 1 个,或者使用一大堆 if/else 调用 1 个函数。做一系列 if/else 似乎已经过时了。没有更有效的方法吗?

【问题讨论】:

    标签: search interface-design


    【解决方案1】:

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

    SQLORM Java library 使用这种方法以面向对象的方式构建 SQL 查询。 This page 很好地讨论了使用带有大量 if-else 的方法与构建器方法构建查询字符串的优缺点。

    【讨论】:

      【解决方案2】:

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

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

      在存储过程中,我倾向于使用一串 isnull 语句来使用参数或如果参数为空则使用字段值。

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

      【讨论】:

        猜你喜欢
        • 2010-10-17
        • 2016-05-26
        • 2010-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-26
        • 2023-03-11
        • 1970-01-01
        相关资源
        最近更新 更多