2015-02-23 75 views
0

我正在創建一個用於顯示儀表板的系統。儀表板由許多不同類型的小窗口組成,例如趨勢,直方圖,spiderplot等 目前,我將每個Dashlet定義爲一個Oracle表內的一行。我的困境如下。每種類型的dashlet都有一組不同的參數,例如線條顏色,y軸標題,最大y等。到目前爲止,我已經爲每個參數創建了不同的列,但這意味着我有很多列和許多的列與特定的dashlet無關並且保持空白。我現在嘗試使用一個名爲定義的列,其中包含定義Dashlet特徵的信息。下面的例子。
ytitle:Count |
linecolor:Yellow |
linethickness:12 |
.....如何在Oracle數據庫中存儲儀表板定義

這樣做的問題是如果拼寫錯誤,程序將在運行時失敗。 解決此問題的最佳方法是什麼?

+0

1.)爲所有可能的Dashlet參數創建一個包含列的表格。這個表的記錄將任何一個dashlet參數集的實例化。一般來說,每個記錄中都會有(可能很多)'NULL'值。 2.)爲每個dashlet類型創建另一個表保存有效參數。這樣,您只能將dashlets與支持的params關聯一次,並且可以進行徹底測試。對於每個實例只傳遞值。選擇一種你認爲合適的簡單語法。 – collapsar 2015-02-23 10:44:48

+0

...另一種選擇是投資捕捉Dashlet實例化的運行時失敗:您無法完全避開該步驟,因爲無論如何您必須防範非法/拼寫錯誤的參數值。 – collapsar 2015-02-23 10:45:26

+0

有多少個dash和屬性?如果它只有50,我會說堅持一張桌子。如果它超過1000,那麼你需要類似於實體屬性值模式。 – 2015-02-24 01:52:08

回答

1

您可以創建表,比如說t_parameters,其中參數名稱(ytitle,linecolor)將是主鍵或唯一鍵。然後,您可以在您的parameter_name列上創建一個外鍵,該列位於您的定義表(存儲asstionment:ytitle Count等的列表)中。

現在,如果您想確保參數值也來自確切列表,您可以通過創建參數值表和創建唯一鍵然後在定義表中創建外鍵來完成相同操作。

然後,如果你需要的是更先進的,並檢查該參數可以是值,您可以創建具有列PARAMETER_NAME查找表,PARAMETER_VALUE像:

linecolor;黃色

linecolor;紅色

Ytitle; sum

Ytitle;計數

這是如何確保參考完整性的一種方法。

最佳做法是在t_parameter中爲參數名稱設置一個數字ID並將其設置爲PK並在查找表中引用它們。

相關問題