19

数据字典真的有用吗?--开源软件诞生12

 3 years ago
source link: https://segmentfault.com/a/1190000024529150
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

数据字典设计思路探讨--第12篇

用日志记录“开源软件”的诞生

【点亮星标】----祈盼着一个鼓励

博主开源地址:

码云: https://gitee.com/redragon/redragon-erp

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

fAnUbuy.jpg!mobile

数据字典真是本字典吗?

一提到数据字典总是说到数据库,它是对数据库对象的一个说明。但我今天所说的数据字典指的是数据字典模块,它面向的不是数据库而是信息系统。我每次提出这一概念的时候,总会有很多人问数据字典是什么?有什么用?下面我就来聊聊。

数据字典的字面分成两个部分,即数据和字典。数据是我们系统中的基础,所有的功能都建立在数据的基础上;而字典其实就是在解释数据,所以说你也可以理解成它就是一本字典。但比字典的含义又有些不同或范围更宽。字典是来解释一个词的意义的,而数据字典的功能更多是在描述一个数据的内容或范围。举个例子,性别就是一个数据,如何描述它呢?男女。这当然只是一个最简单的例子,希望你可以举一反三的理解它。

为什么需要数据字典

数据字典的作用是什么呢?那么先来看它可以描述哪些类型的数据?

(1)一个键值对,比如记录一些常量值。

(2)List、Set、Map值,比如币种、单位。

(3)树形结构,比如国家、省市。

由此可见我们对于数据字典的应用往往就是记录,记录一个值、记录一系列值、或者记录一系列的关系值。这些值一般都是对其他字段或者数据的描述,并通过各种方式最终给用户呈现出来。

那么都有哪些值可以存于数据字典中呢。

(1)功能中的选择值或范围值

(2)系统中用的常量或变量

(3)系统中可由管理员自由配置的数据

(4)系统中可由用户自由配置的数据

这些数据当然也可以存于各种表中,但这么做除了浪费资源外毫无意义。所以存在数据字典里必定是最好的解决方案。尽管是这样,但又会衍生出另外一个问题,是不是所有这些数据都必须存在数据字典呢?有没有替代方案?

数据字典和替代方式

下面我们就来聊聊,我在赤龙ERP里如何存储上一节中涉及的信息。这要分为几个类型:

(1)几乎不会改变的信息:由于这类数据不变,我一般会选择将此数据存在于全局的java常量中,从而减少数据字典的浪费,提高调用效率。

(2)可由开发人员改变的信息:由于这类数据可能会变,但变动频率低,且只会由开发人员变动,所以存在java虚拟机内存中,以不同数据类型而存在,从而降低此类数据的变动风险。

(3)可由实施人员改变的信息:由于这类数据在系统初始化时设置,允许变动,但变动频率不大。一般会将这些数据存在于配置文件中,方便实施运维人员的修改。

(4)可由用户自己改变的信息:这类数据才是真正需要存在于数据字典的信息。用户操作方便,快速生效,组织更加灵活。

数据字典的特殊处理:为了解决一些特殊的数据结构问题,我们可以适当优化数据字典表,将表中增加辅助字典用于范围描述,增加段值或父值字段用于树形结构的描述

后记

到此应该已经明晰了数据字典在ERP中的具体应用,下一篇我们聊聊,EHR系统和ERP系统的功能与数据交割。

码云 】或【 GitHub 】搜索“赤龙ERP”点击星标。等待着您的支持!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK