关于数据库设计:那些你不知道的表结构设计思路开源软件诞生9

36次阅读

共计 1455 个字符,预计需要花费 4 分钟才能阅读完成。

ERP 表构造的设计 – 第 9 篇

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

赤龙 ERP 开源地址:

点亮星标,感激反对,与开发者交换 kzca2000

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

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

赤龙 ERP 官网:https://www.redragon-erp.com

前言

上一篇文章说了 ERP 的零碎设计,数据库构造只是一笔带过,明天重点说说我在【赤龙 ERP】的表构造外面的都做了哪些非凡的设计,并且为什么这么设计。

ID 与编码

我在每一个表简直无一例外的都减少了两个默认的字段,即 ID 和 Code。这两个字段看似都是可标识数据的唯一性字段,但为什么要设计两个呢?它们当然各有用处。

(1)ID 是一个表的主键,个别都是自增的,次要用于排序、定位、查问,因为它是数字所以更清晰、速度更快。

(2)Code 是惟一键,类型多是字符。可用 UUID 或雪花算法等生成。当然在有具体业务场景的状况下,能够由用户输出或按逻辑生成。除了能够具备强语义外,还优先用于外键的关联。

这里做个非凡阐明:为什么要用 Code 做外键,ID 也能够做外键啊。外键要具备两个最大的特点:惟一,不可变。ID 因为多是自增或由数据库的特质生成,所以不能保障在数据迁徙时相对不变。所以应用 Code 更安全可靠一些。

组织机构

这个字段名为:org_code,示意组织机构。那什么是组织机构呢?简略说就是独立的公司或主体。作用次要是用于数据隔离,因为没有必要为不同公司建设不同的数据表,所以用一个字段将不同公司的数据隔离开。有点像财务的账套的概念。

操作记录

在每个表都会减少四个字段,用来记录谁在什么工夫做了数据操作。别离为:

(1)CREATED_DATE(创立工夫)

(2)LAST_UPDATED_DATE(最初批改工夫)

(3)CREATED_BY(创建人)

(4)LAST_UPDATED_BY(最初批改人)

创建人和创立工夫,在数据新增的时候设置;最初批改人和最初批改工夫,在数据更新的时候设置

数据权限

信息化零碎都须要数据权限的管制,即什么人能够操作哪些数据。个别企业级信息化,数据权限的逻辑都是在组织架构的层面进行管制的。个别包含:本人操作本人的数据、不同级别部门内的数据可共享、整个公司的数据共享。

为了解决上述的数据权限管制的须要,所以减少一个字段 DEPARTMENT_CODE(部门编码)。这个字段只会记录创立以后数据的人所属的部门,即这条数据的所属部门。代码层面再联合数据权限,即可实现数据权限的管控。

版本与日志表

在须要记录数据版本的表中减少 VERSION(版本号),常见的业务场景就是“变更性能”。上面举个例子,比方:洽购订单变更。当咱们创立了一个洽购订单,并且审批通过后,这个数据实质是不能批改的,但呈现须要批改的时候,咱们就须要用上洽购订单变更性能。当订单变更时,须要做的就是版本号 +1,并且在日志表生成历史数据。

自定义字段

自定义字段的作用是让用户能够依据本人的业务须要减少一个表的字段并保留数据。做法是须要在一个表中减少 attribute 字段,少数状况下会预留多个 attribute 字段,字段名 attribute1、attribute2、attribute3 以此类推。而后再通过可配置的性能来设置 attribute 字段和字段中文名的对应关系即可。

心愿您读完本文能够帮忙笔者进入【码云】或【GitHub】搜寻“赤龙 ERP”点击星标。期待着您的反对!

正文完
 0