數據字典真的有用嗎?–開源軟件誕生12

數據字典設計思路探討–第12篇

用日誌記錄「開源軟件」的誕生

【點亮星標】—-祈盼着一個鼓勵

博主開源地址:

碼云://gitee.com/redragon/redragon-erp

GitHub://github.com/redragon1985/redragon-erp

數據字典真的有用嗎?

 

數據字典真是本字典嗎?

一提到數據字典總是說到數據庫,它是對數據庫對象的一個說明。但我今天所說的數據字典指的是數據字典模塊,它面向的不是數據庫而是信息系統。我每次提出這一概念的時候,總會有很多人問數據字典是什麼?有什麼用?下面我就來聊聊。

數據字典的字面分成兩個部分,即數據和字典。數據是我們系統中的基礎,所有的功能都建立在數據的基礎上;而字典其實就是在解釋數據,所以說你也可以理解成它就是一本字典。但比字典的含義又有些不同或範圍更寬。字典是來解釋一個詞的意義的,而數據字典的功能更多是在描述一個數據的內容或範圍。舉個例子,性別就是一個數據,如何描述它呢?男女。這當然只是一個最簡單的例子,希望你可以舉一反三的理解它。

為什麼需要數據字典

數據字典的作用是什麼呢?那麼先來看它可以描述哪些類型的數據?

(1)一個鍵值對,比如記錄一些常量值。

(2)List、Set、Map值,比如幣種、單位。

(3)樹形結構,比如國家、省市。

由此可見我們對於數據字典的應用往往就是記錄,記錄一個值、記錄一系列值、或者記錄一系列的關係值。這些值一般都是對其他字段或者數據的描述,並通過各種方式最終給用戶呈現出來。

那麼都有哪些值可以存於數據字典中呢。

(1)功能中的選擇值或範圍值

(2)系統中用的常量或變量

(3)系統中可由管理員自由配置的數據

(4)系統中可由用戶自由配置的數據

這些數據當然也可以存於各種表中,但這麼做除了浪費資源外毫無意義。所以存在數據字典里必定是最好的解決方案。儘管是這樣,但又會衍生出另外一個問題,是不是所有這些數據都必須存在數據字典呢?有沒有替代方案?

數據字典和替代方式

下面我們就來聊聊,我在赤龍ERP里如何存儲上一節中涉及的信息。這要分為幾個類型:

(1)幾乎不會改變的信息:由於這類數據不變,我一般會選擇將此數據存在於全局的java常量中,從而減少數據字典的浪費,提高調用效率。

(2)可由開發人員改變的信息:由於這類數據可能會變,但變動頻率低,且只會由開發人員變動,所以存在java虛擬機內存中,以不同數據類型而存在,從而降低此類數據的變動風險。

(3)可由實施人員改變的信息:由於這類數據在系統初始化時設置,允許變動,但變動頻率不大。一般會將這些數據存在於配置文件中,方便實施運維人員的修改。

(4)可由用戶自己改變的信息:這類數據才是真正需要存在於數據字典的信息。用戶操作方便,快速生效,組織更加靈活。

數據字典的特殊處理:為了解決一些特殊的數據結構問題,我們可以適當優化數據字典表,將表中增加輔助字典用於範圍描述,增加段值或父值字段用於樹形結構的描述

後記

到此應該已經明晰了數據字典在ERP中的具體應用,下一篇我們聊聊,EHR系統和ERP系統的功能與數據交割。

 

碼雲】或【GitHub】搜索「赤龍ERP」點擊星標。等待着您的支持!