2008-11-02 78 views
0

我們的應用程序通過Web服務公開查詢,我們發現我們的客戶經常需要自定義查詢,或者通過進一步限制通過指定附加條件返回的結果,或者通過請求我們不需要的東西,已經暴露。什麼是可擴展查詢接口的優秀設計?

現在,我們可以採用爲這些新方法中的每一種創建新方法的方法,但這有點不方便;在客戶端部署我們的應用程序通常需要幾周的分階段集成測試。我們提出了一種命名查詢機制,其中應用程序管理員將按名稱定義查詢參數化的對象,以及簡單調用這些參數的相應Web服務。然而,我不禁想到以前有人已經解決了這個問題,所以我希望SO社區提供一些關於可能設計的意見。

謝謝!

更新

規範模式是一個很好的,但是我們有足夠的數據應用協議,我們希望儘可能多的查詢工作下推到RDBMS,它可以做優化的工作做得更好查詢計劃比我們想要的要多。此外,我們支持三個RDBMS後端,所以我們堅持使用最常見的分母方法:儘可能多地使用功能最差的數據庫所能提供的功能。

回答

1
  • 看看Hibernates Criteria API,並用它或建立你的用戶一些類似 功能。
  • 如果值得努力,請提供一個樹狀界面來對標準進行分組。

    • 易於構建:

    優勢( 「組中的所有條件必須匹配」/ 「一個標準必須匹配」/ 「否定」)。

  • 用戶參數是可能的。
  • 強大的查詢是可能的。
  • 您可以將喜歡SELECT ...限制FROM表WHERE someRestriction AND(用戶提供的標準)
0

因爲我們真的不知道,你的用戶是如何使用你的界面似乎有點過早給的東西一個技術諮詢這感覺更接近「Inmates are running the Asylum」的問題。 有一些非常好的建議和常見的方法來解決這個我技術方面,但他們爲你的用戶工作?也許真的不給你一個關於你的問題的廢話,而是有一個良好的工作一鍵解決方案? (或更像谷歌?)

+0

這是一個有效的,準確的觀察;他們喜歡按鈕式的方法。 儘管如此,我仍然想要一些想法。我們可能不會使用它們,部分原因是您引用的原因,但它可能有助於指導我們最終獲得更好的解決方案。 – 2008-11-02 17:54:43