0

我们的应用程序通过 Web 服务公开查询,我们发现我们的客户经常需要自定义查询,或者通过指定附加条件来进一步限制返回的结果,或者通过询问我们还没有的东西暴露。

现在,我们可以采用为这些新方法中的每一个创建新方法的方法,但这有点不方便;在客户站点部署我们的应用程序通常需要数周的分阶段集成测试。我们提出了一种命名查询机制,应用程序管理员将通过名称定义参数化的查询,以及一个简单地调用这些参数的相应 Web 服务。但是,我不禁认为以前有人已经解决了这个问题,所以我想从 SO 社区获得一些关于可能设计的意见。

谢谢!

更新

规范模式是一个很好的模式,但是我们的应用程序处理了足够多的数据,我们希望将尽可能多的查询工作推送到 RDBMS 中,这可以比我们想要的更好地优化查询计划。此外,我们支持三个 RDBMS 后端,因此我们被困在使用最大公分母方法:我们使用功能最少的数据库所能提供的尽可能多的功能。

4

3 回答 3

2

我还建议考虑将此类应用程序中的“规范模式”作为后端的设计决策。检查以下有关“规范模式”的帖子:

http://www.mattberther.com/2005/03/25/the-specification-pattern-a-primer/

http://devlicio.us/blogs/jeff_perrin/archive/2006/12/13/the-specification-pattern.aspx

于 2008-11-02T16:56:04.480 回答
1
  • 查看Hibernates Criteria API并使用它或为您的用户构建一些类似的功能。
  • 如果值得付出努力,请为分组标准提供一个树状界面。(“一个组的所有条件必须匹配”/“一个条件必须匹配”/“否定”)

好处:

  • 易于构建。
  • 用户参数是可能的。
  • 强大的查询是可能的。
  • 您可以应用限制,例如SELECT ... FROM table WHERE someRestriction AND(用户提供的条件)
于 2008-11-02T16:50:20.060 回答
0

由于我们真的不知道您的用户如何使用您的界面,因此就感觉更接近“囚犯正在运行庇护”问题的问题提供技术建议似乎有点为时过早。有一些非常好的建议和常见的方法来解决这个我技术方面的问题,但它们对你的用户有用吗?也许真的不要对你的问题说废话,而是有一个很好的一键式解决方案?(或者更像谷歌?)

于 2008-11-02T17:51:48.720 回答