企业级数据架构ERP系统搭建

2025-0901连续发布 ERP 搭建经验

  1. 应用组件分类域定义

  2. 关键组件

6 Likes

2025-0902

Nocobase 作为典型的无代码后端管理应用搭建平台,用于构建ERP具有天然的技术栈优势.
ERP作为最常见的企业信息化工具,已经演进了40+年,深度嵌合到企业运营和商业模式之中.

ERP缘起于库存管理的数字化尝试,所以传入中国后,被快速理解为 “进” “销” “存”;然后围绕 <进\销\存>背后的经济模型与数据模型却鲜有人讨论.大部分IT从业者与软件开发者,在引进消化国外先进经验的同时,也忽视了对数据架构本身的思考与探讨.Nocobase的出现,让我们有了一次完全基于数据模型驱动的超低成本软件开发路径.

数据模型设计

模型设计哲学

企业是一种经济组织→企业数据必然符合经济运行的一般性要求→企业数据模型即是经济模型的部分也是经济模型的全部;
经济行为是社会行为基础→经济基础决定上层建筑
经济行为是自组织的,市场又呈现出明显的周期性震荡→假设经济行为可以用一种反应扩散过程.可否找到一种简单的建模结构用于表达复杂的经济行为即复杂性可以从简单规则中涌现
我们找到了:

个体差异→比较优势→生产剩余 ↔ 普遍需求 = 交易 (物权交换 + 供需信息交换) ⇒ 交易的对称性,总价值守恒

  • 企业的数据模型应与市场经济模型共享一个简单结构
  • 企业的数据交换过程应与经济行为过程一致,并与其他的经济行为体以交易为界镜像对称

Nocobase的模型对接

Nocobase 进行应用构建,实现软件的元数据定义与管理;需要关注元数据控制领域的审计\登录\角色全控制

关系型数据的扩展与补充

利用表继承的能力实现表数据结构的内联与列扩展进而实现面向对象特征的数据操作能力.

选Postgresql配合Nocobase的表继承特性一起使用

元数据模型




此处需要注意nocobase没有直接的array字段声明,利用下拉多选来进行声明


此时元数据开始介入角色绑定与数据模型的桥接构成

application 字段则为了利用多应用共享数据模型时相同角色权限绑定的应用差异性.

角色::岗位::应用标识 是一组联合唯一性约束

应用数据模型

为了扩展用户数据和不同环境的部署差异

用于管理周期性定时任务,与定时工作流配合使用


扩展应用用户管理,由于Nocobase的user表还与注册\审计等多个内置插件应用,为保持其兼容性,以关系数据方式进行扩展


利用内置的文件数据表扩展用户头像存储

为多环境差异准备的环境配置参数

Alioth 数据模型











8 Likes

这个数据表的结构有点复杂,数据量估计也不小。
想请教一下,这个实际生产环境跑起来,性能怎么样呢?

没有性能压力

2025-0905

Nocobase 安装注意事项

  • 使用源码安装
  • .env 编制注意事项
################# NOCOBASE APPLICATION #################
...

APPEND_PRESET_BUILT_IN_PLUGINS=@nocobase/plugin-multi-app-manager,@nocobase/plugin-multi-app-share-collection
################# DATABASE #################
...
DB_DIALECT=postgres
DB_SCHEMA=isahl_meta
COLLECTION_MANAGER_SCHEMA=isahl
DB_TIMEZONE=+08:00
DB_UNDERSCORED=true
USE_DB_SCHEMA_IN_SUBAPP=true

DDL导入以及自动化脚本严格依赖了DB的配置项,所以此处必须提前进行约定
需要注意 v2+ 将启用新版的<多应用管理器>插件, < 多应用数据表共享>已不再维护且配置时存在数据源信息不同步的问题

能否告知下数据库和内存那些资源配置如何?

最小运行环境要求
CPU 2C
MEM 2G
VLC 4G
NBW 100Mbps

后续会发布完整的DDL

这么夸张吗?我这边字段配多了页面都卡的,你每个表的字段都这么多,配置过程也没事吗?等你后续公布详细配置

跑起来可能会挺占浏览器内存的。

其实表字段的总量并不是最拖累页面性能的.反而是对带宽的要求很苛刻.
卡这件事只能看容忍度了

顶起,顶起 @william.d.zk

1 Like

2025-0923

Postgresql 数据模型

已在Github 开源适用于Postgresql的纯净数据模型.

Cosmic-Tools/Alioth

此脚本包含外键约束, 用于在各类ER-View进行查看.

不可用于Nocobase环境下的DB建立;