2010-03-16 40 views
1

我目前正在做某種報表系統。圖表,圖表都是基於查詢結果的。不知何故,我發現複雜的查詢不容易維護,特別是在有很多過濾的情況下。這使得查詢很長並且不容易理解。而且,有時候,執行具有類似過濾器的查詢,從而產生大量冗餘代碼,例如,當我要選擇「2010-03-10」和「2010-03-15」之間的某個地點並且地點是「美國」時,客戶組是「ZZ」,我需要在每次進行查詢時重寫這些條件在這個範圍內。 dbms(在我的情況下,mysql)是否支持任何「範圍/上下文」,以使編碼更易於維護,速度更快?維護面向查詢的應用程序

另外,是否有工業標準或最佳實踐設計這樣的應用程序? 我猜我在做什麼叫做數據挖掘,對吧?

回答

1
  1. 瞭解如何創建視圖以消除來自查詢的冗餘代碼。 http://dev.mysql.com/doc/refman/5.0/en/create-view.html

  2. 不,這不是數據挖掘,它是普通的舊報告。有時稱爲「決策支持」。信息技術的麪包和黃油。最終,播放舊報告是我們編寫軟件的原因。有人需要信息來作出決定並採取行動。

    數據挖掘有點專業化,因爲關係不易定義。有人試圖發現關係,然後他們可以編寫適當的查詢來利用他們找到的關係。

0

如果您手動對查詢進行編碼,則不會生成非常靈活的報表工具。每當需求發生變化時,你都會在煩瑣的代碼中試圖滿足它 - 這就是瘋狂。

相反,你應該開始考慮您的查詢的基礎設施之上的元層和響應用戶表示標準產生的SQL。您可以向他們展示一組可供您生成查詢的選項。如果你給一個位的思路,以使這些選擇,可擴展的,你會用自己的方式下已經存在很多很多的BI和報表產品的路徑是很好。

您可能還想開始尋找已經完成此工作的基礎架構,如Crystal Reports(被SAP公司吞噬的Business Objects)或Eclipse的BIRT。這取決於你是否是一個編程的鍛鍊或到用戶的報告問題的解決方案後,你可能只是想抓住關閉其已有數萬人多年的發展,諸如上述的那些或甚至一個現成的產品(被IBM吞噬)或Hyperion(被Oracle吞噬)。

祝你好運。