基于元数据的无代码平台存储设计

业务系统都是围绕数据来进行的,数据是一切的核心,所以我们先从数据的角度,也就是从后端来设计系统,这个版本使用关系数据库,所以设计就在于关系数据库的规定下进行。

关系数据库的基本点是数据表,数据字段,索引,主外键等,而与之对应的对数据库的增删改查的基本操作,如何能够动态的完成这些基本功能,是一个起点。

而与数据库对应操作的实现,就是基础的各类数据库适配,支持各类数据库,连接、运行等,各个数据库商都提供对应的组件和接口。

再上一层,就是开发对应的各类与数据实体对应的操作,当然,可以CodeFirst来生成数据库,也可以先建数据库来生成Code,先选择CodeFirst场景来进行。很多ORM工具都是CodeFirst的,一个好处就是系统初始化以及以后的升级都会有极大的方便。

这里面就一个元数据设计的核心思想,属性配置,根据属性来完成对应的规则约定。说起属性,可以想到比如实体类的基本属性,方法,当然这些都可以看成实体属性;数据库基本字段属性;界面展示属性;业务规则属性;等等,元数据就是设置各类属性,然后这些高度抽象的属性,组成了一个相对灵活而又很受约束的体系,可见如何降低耦合度是考验一个设计的标准,因为本身它们难免会需要高耦合的协同工作。这里比如集中一个点展开:

构建类,类的属性匹配数据表属性,以此完成后端存储的第一步。假设系统已经构建完成,那么基类应该的功能为:1)运行可以生成对应的数据表;2)有基本的增删改查的实体属性;3)为进步扩展其他属性做好底盘支持,举例子,实体以上的基本属性,是可以通过存在数据库里面的属性来构建的(比如可以动态的构建基本数据表和字段,可视化构建,那么这些表的属性是需要一个基础数据表保存的,字段同样也需要集基础数据表来保存,这正如数据库工具本身,也会有其自身的存储属性一样)。就是这是一个双向工程,都是一个平台最核心思想所需要的内容。

具体的例子可以查看代码: BP: 无代码的基本框架,设计,代码优化,重构。 - Gitee.com

注意:需要根据先配置您的数据库,修改对应的连接串,来完成单元测试 :修改数据库 类型 SystemConfig.cs 下 1561行 AppCenterDBType 修改数据库连接串 :1402行 _AppCenterDSN

当然更多的实战环境可以查看: CCFlowForNetCore: ccflow包含表单引擎+流程引擎+权限控制,方便集成,配置灵活,功能强大,适合中国国情的工作流引擎, 点starred记住序号,加群:578285417 国外有activiti,国内有ccflow.

PS: 这些代码比较原生态,如何根据这个思路来优化升级这些代码,是一个比较大的工作量,讲在设计思路和现代.net框架和DDD模型的驱动下逐步迭代,也希望看到您的一些思考。

相关推荐
启扶农15 小时前
lecen:一个更好的开源可视化系统搭建项目--表格、列表--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一个懂你的人
低代码·表格组件·列表组件·页面可视化·页面设计器·表格配置·列表配置
Zoey的笔记本2 天前
安全、可控、可定制:构建企业级知识库,开源在线协作文档的深度应用
java·python·低代码
液态不合群2 天前
【教育数字化】破除“技术空转”困局:低代码如何重构教育系统建设逻辑?
低代码·重构
yinmaisoft2 天前
JNPF 权限管理 yyds!菜单 / 流程 / 打印权限一键配,层级授权不头疼
前端·人工智能·低代码·开发工具
无代码专家2 天前
无代码赋能全域数字化:从痛点突破到效能重构
低代码
启扶农2 天前
lecen:一个更好的开源可视化系统搭建项目--人员管理、身份管理--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一个懂你的人
低代码·权限管理·身份管理·组织管理·页面可视化·页面设计器·人员管理
Lubase2 天前
LuBase介绍&私有化部署教程
java·spring boot·低代码·gitee·vue
ZKNOW甄知科技2 天前
2025 甄知科技年度报告
运维·人工智能·低代码·ci/cd·自动化·数据库架构·敏捷流程
Lubase2 天前
国企管理系统低代码选型注意事项
低代码
无代码专家3 天前
无代码驱动行业数字化转型:从痛点突破到效能重构
大数据·低代码·制造