首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

通用數據查詢器 DataGetter 設計心得:業務對象-特征兩層模型

     編輯:Java 相關知識

緣起:給業務用戶的「自助取數」工具

大型系統普遍需要強大查詢功能,但廠商查詢器綁定自家產品。為讓不懂資料庫結構、不會 SQL 的業務用戶也能靈活取數,耗時一月開發了 DataGetter,核心在於業務對象—特征兩層模型。

核心概念定義

概念定義
業務對象對應資料庫基表記錄,分為實體定義表與關係定義表。
狹義特征基表中的業務字段,即基本特征。
廣義特征含狹義特征、傳遞特征、匯聚特征、衍生特征。
傳遞規則對象關係 n:1 時,B 的特征可傳遞給 A 直接視為 A 特征。
匯聚規則對象關係 1:n 時,B 的特征可匯聚為 A 特征(如求和、平均)。
衍生特征單行記錄多字段經固定計算得出(如日期→年份),不直接存庫。

用戶取數本質:關注對象 + 關注特征

例:合同管理人員需「合同代碼、簽訂日期、承包商名稱、合同總額、累計成本、本年工程量」。

  • 關注對象:2003 年簽訂的合同。
  • 基本特征:代碼、日期、總額。
  • 傳遞特征:承包商名稱(n:1 關係傳遞)。
  • 匯聚/衍生特征:累計成本、本年工程量(需跨表聚合/計算)。

特征分散於多表,正是查詢器開發難點。兩層模型對用戶隱藏資料庫結構,直接展現業務對象及其所有特征,用戶只需「找對象、選特征、定條件、點取數」。

DataGetter 實戰演示

  1. 選對象:從「合同文件櫃」選擇合同對象。
  2. 選特征:列表已含「累計支付金額」(預先登記匯聚規則),用戶勾選即用。
  3. 定條件:滑鼠拖拽或輸入篩選條件(如簽訂年份=2003)。
  4. 啟動引擎:一鍵完成 SQL 生成、執行、結果組裝。
  5. 結果呈現:內建網格瀏覽、列印、匯出 TXT 供 Excel 二次分析。

系統亮點

  • Java 開發,多資料庫支援。
  • 用戶零資料庫知識、零培訓、零編程。
  • 跨表關聯取數、高速引擎。
  • 可擴充:多行運算庫(累計/平均)、導出庫(日期→年份)、關係運算庫、特征庫。
  • 結果支援 Excel 網格瀏覽、快速列印、文本匯出。

總結

業務對象—特征兩層結構,將「資料庫結構」轉譯為「業務語義」,讓查詢器真正服務於業務邏輯而非技術細節。擴充機制保證長期適應業務變化,是通用查詢工具的關鍵架構抉擇。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved