View List與Sub View List設計規範

因公司業務發展,需要改造一個BI平臺Davinci。
考慮到davinci的View List中的View只是作爲一個寬表來進行設計的,無法將兩個View進行關聯。所以需要修改源碼。
 
可修改源碼,並將View劃分爲View和Sub View,其邏輯上分別對應維表、事實表。
 
 
 
然後定義好View與Sub View之間的關聯主鍵,就可進行數據的複用。舉個真實的metabase例子如下:
統計流水的時候,需要拿到xxxxxx表的真實套餐使用金額和支付時間,其兩個字段的計算方式如下:
- 真實套餐使用金額:Money - (CV / 100)
- 支付時間:InsertTime
 
但是!!後來業務改了,計算的字段也變了,其計算方式變成如下:
- 真實套餐使用金額:ActualMoney / 100
- 支付時間:PayTime
 
雖然只是字段的簡單改變,但是就會涉及到十幾個SQL報表,並且位置不清楚,需要一個個找出來,這樣做完就要耗費半天時間。
 
而View與Sub View的關聯就可以解決這種問題,操作流程可以像下面這樣:
- 第一步:把用戶流水相關封裝成一個一userId作爲關聯鍵的Sub View,並將真實套餐金額、支付時間這兩個字段提供出去。
- 第二步:將其與對應的View進行關聯。
- 第三步:涉及到流水字段改動時,只需要改造Sub View的兩個字段即可。
 
定義Sub View需要考慮的事:
第一點:Sub View如何定義?是以用戶某一種行爲歷史作爲記錄(如上課記錄、報名記錄等),還是其他?
- 建議以用戶某一種歷史行爲作爲Sub View。
 
第二點:Sub View由誰來進行維護?是歸一個人統一維護?還是歸各個業務開發人員來進行維護?
- 建議如果進行變更,必須要有對應的負責人以及業務開發人員一同進行處理。避免多個業務開發人員相互覆蓋其變更邏輯。
 
第三點:Sub View提供出去的字段名必須是保持不變的,可添加,但不能對被View已使用的字段名名稱做變更。因爲一旦名稱修改,其他報表也會出現問題。
- 這是一個規範的問題,需要約定已被View所使用的字段不可進行變更,並需要在代碼層面做校驗處理。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章