首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据字典真的有用吗?

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

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

数据字典真是本字典吗?

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

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

为什么需要数据字典

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

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

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

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

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

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

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

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

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

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

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

数据字典和替代方式

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

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

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

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

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

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

后记

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201004A05BF000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券