資料字典設計思路探討--第12篇
用日誌記錄“開源軟體”的誕生
【點亮星標】----祈盼著一個鼓勵
博主開源地址:
資料字典真是本字典嗎?
一提到資料字典總是說到資料庫,它是對資料庫物件的一個說明。但我今天所說的資料字典指的是資料字典模組,它面向的不是資料庫而是資訊系統。我每次提出這一概念的時候,總會有很多人問資料字典是什麼?有什麼用?下面我就來聊聊。
資料字典的字面分成兩個部分,即資料和字典。資料是我們系統中的基礎,所有的功能都建立在資料的基礎上;而字典其實就是在解釋資料,所以說你也可以理解成它就是一本字典。但比字典的含義又有些不同或範圍更寬。字典是來解釋一個詞的意義的,而資料字典的功能更多是在描述一個資料的內容或範圍。舉個例子,性別就是一個資料,如何描述它呢?男女。這當然只是一個最簡單的例子,希望你可以舉一反三的理解它。
為什麼需要資料字典
資料字典的作用是什麼呢?那麼先來看它可以描述哪些型別的資料?
(1)一個鍵值對,比如記錄一些常量值。
(2)List、Set、Map值,比如幣種、單位。
(3)樹形結構,比如國家、省市。
由此可見我們對於資料字典的應用往往就是記錄,記錄一個值、記錄一系列值、或者記錄一系列的關係值。這些值一般都是對其他欄位或者資料的描述,並通過各種方式最終給使用者呈現出來。
那麼都有哪些值可以存於資料字典中呢。
(1)功能中的選擇值或範圍值
(2)系統中用的常量或變數
(3)系統中可由管理員自由配置的資料
(4)系統中可由使用者自由配置的資料
這些資料當然也可以存於各種表中,但這麼做除了浪費資源外毫無意義。所以存在資料字典裡必定是最好的解決方案。儘管是這樣,但又會衍生出另外一個問題,是不是所有這些資料都必須存在資料字典呢?有沒有替代方案?
資料字典和替代方式
下面我們就來聊聊,我在赤龍ERP裡如何儲存上一節中涉及的資訊。這要分為幾個型別:
(1)幾乎不會改變的資訊:由於這類資料不變,我一般會選擇將此資料存在於全域性的java常量中,從而減少資料字典的浪費,提高呼叫效率。
(2)可由開發人員改變的資訊:由於這類資料可能會變,但變動頻率低,且只會由開發人員變動,所以存在java虛擬機器記憶體中,以不同資料型別而存在,從而降低此類資料的變動風險。
(3)可由實施人員改變的資訊:由於這類資料在系統初始化時設定,允許變動,但變動頻率不大。一般會將這些資料存在於配置檔案中,方便實施運維人員的修改。
(4)可由使用者自己改變的資訊:這類資料才是真正需要存在於資料字典的資訊。使用者操作方便,快速生效,組織更加靈活。
資料字典的特殊處理:為了解決一些特殊的資料結構問題,我們可以適當優化資料字典表,將表中增加輔助字典用於範圍描述,增加段值或父值欄位用於樹形結構的描述
後記
到此應該已經明晰了資料字典在ERP中的具體應用,下一篇我們聊聊,EHR系統和ERP系統的功能與資料交割。