新闻详情

新闻详情

首页 / 资讯中心 / 详情

VeapAI 实战(七)多表关联业务的可视化建模:主子表、树表与级联联动

发布时间:2026/9/4 18:03:51来源:尧图网络
VeapAI 实战(七)多表关联业务的可视化建模:主子表、树表与级联联动
摘要本文以「预算项目 → 类别清单 → 费用明细项」三级业务为例讲解 VeapAI 在线开发中多表关联的建模方法。先梳理关联关系再选择形态重点介绍主子表与树表两种页面形态说明级联删除 SQL 在生成期如何由模板按外键标记生成并对比「建模事实、渲染配置、渲染实现」分层设计与「全配置塞一张 JSON」的差异最后给出判断何时不该用主子表的标准与复现步骤。 关键词主子表建模、树表、级联删除 | 首发CSDN上一篇文章讲了生成器的三种形态怎么渲染这篇换个视角拿到一个多表关联业务怎么在在线开发里把它建出来。用一个真实场景贯穿——预算项目 → 类别清单 → 费用明细项。## 先想清楚关联再选形态这个业务三级一个预算项目挂多个类别一个类别挂多个明细。建表三张外键两个类别表.project_id - 项目表.id、明细表.category_id - 类别表.id。在线开发里怎么建两个方案- 方案 A三层各建一个单表页面用户在三个页面之间跳转- 方案 B项目作为主表类别挂成子表主子表明细再作为类别的子表一个页面里三层联动。VeapAI 支持 B。veap_generate 表的建模字段| 字段 | 说明 || --- | --- || sub_table_name | 子表名称 || sub_table_fk_name | 子表关联的外键名 || master_sub_schema | 主子配置 || tree_schema | 树配置树表形态用 |## 主子表页面长什么样![主子表编辑页]主表编辑页内嵌子表表格子表行内编辑。保存时主表一行、子表多行一个事务提交。这是 SubTableRenderSpec 渲染出来的标准形态不需要手写嵌套表单代码。树表适用于部门树、分类树这类自带层级的数据tree_schema 描述父字段、排序字段。树初始化逻辑在 TreeInitializer。![树表页面]## 级联删除生成期就写好的 SQL主子表的删除语义在 mapper.xml.vm 里处理。模板里有一段判断L374 附近velocity## 仅对子表外键SUB生成按外键删除 SQL#if($fk.type SUB)主表删除时按外键先删子表数据。这是生成期就决定的 SQL不是运行期拼的。外键关系在建模时被显式标记为 SUB模板据此生成联动删除。## 一处较真的设计建模和渲染分两层veap_generate.sub_table_name / sub_table_fk_name 是建模事实master_sub_schema 是渲染配置SubTableRenderSpec 才是渲染实现。三层各管各的改渲染不改建模改建模不动渲染。反面的例子是全配置塞一张 JSON主子结构、字段顺序、页面布局混在一个大 JSON 里改个列宽要全文 diff。VeapAI 把建模字段做成独立的列JSON 只留纯渲染配置。![多表关联建模决策]## 什么时候不用主子表不是所有多表关联都该主子表。判断标准子表数据生命周期跟随主表主表删、子表删、页面同屏编辑、子表量大但单主表行数可控。反过来跨业务引用的关联如项目引用供应商应该用字段级配置dict_type 字典、component_props_json 远端加载解决而不是挂成子表。建模错了页面和 SQL 都跟着难受。## 复现bashcd veap-cloudmvn -B -pl veap-package/veap-monolith -am -DskipTests packagecd veap-ui npm install npm run dev按上面的三级业务建三张表导入在线开发把类别挂到项目下、明细挂到类别下生成后删除一条项目数据观察 mapper.xml 里的级联删除 SQL 执行顺序。下一篇进入流程部分Flowable-first 扩展配置架构的三层模型。建模决策的依据在 veap_generate 表注释与 mapper.xml.vm对照三级业务跑一遍就有体感https://gitee.com/mindock/veap
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI力场二次开发教程(15):ADC 与共价修饰分子——linker/弹头自动参数化 2026/9/4 18:46:04

AI力场二次开发教程(15):ADC 与共价修饰分子——linker/弹头自动参数化

ADC与共价修饰分子:linker与弹头自动参数化版本声明:代码基于锚点 A(espaloma 0.3.2 参数化)、锚点 B(openff-toolkit 0.19.0)与锚点 C(Interchange 0.5.1 转 GROMACS)。ADC 体系含抗…

阅读更多 →
AI力场二次开发教程(16):电荷与机器学习电荷——EspalomaCharge 与 AM1-BCC 对比 2026/9/4 18:46:04

AI力场二次开发教程(16):电荷与机器学习电荷——EspalomaCharge 与 AM1-BCC 对比

AI力场二次开发教程(16):电荷与机器学习电荷——EspalomaCharge 与 AM1-BCC 对比适用版本与技术栈(以官方文档为准) espaloma 0.3.2(conda-forge,mamba create -n espaloma -c conda-forge &quo…

阅读更多 →
AI力场二次开发教程(17):蛋白–配体自由能(FEP)——AI 力场接入 alchemical 工作流 2026/9/4 18:46:04

AI力场二次开发教程(17):蛋白–配体自由能(FEP)——AI 力场接入 alchemical 工作流

AI力场二次开发教程(17):蛋白–配体自由能(FEP)——AI力场接入 alchemical 工作流适用版本与技术栈(以官方文档为准) espaloma 0.3.x(conda-forge)openff-toolkit 0.19.0…

阅读更多 →
AI力场二次开发教程(18):高吞吐虚拟筛选——批量分子 AI 参数化自动化 2026/9/4 18:46:04

AI力场二次开发教程(18):高吞吐虚拟筛选——批量分子 AI 参数化自动化

AI力场二次开发教程(18):高吞吐虚拟筛选——批量分子 AI 参数化自动化适用版本与技术栈(以官方文档为准) Python 3.9(标准库 concurrent.futures / multiprocessing)espaloma 0.3.2(…

阅读更多 →
第05章(特别篇) 内核的暗黑魔法:一场_set_gate的深夜拆解 2026/9/4 18:46:04

第05章(特别篇) 内核的暗黑魔法:一场_set_gate的深夜拆解

免责声明 本文内容仅限技术学习与交流使用。文中涉及的代码、汇编指令和硬件描述基于 1991 年的 Linux 0.11 内核源代码与 x86 32 位保护模式架构。现代操作系统(如 Linux 2.6)的中断描述符表管理已采用完全不同的实现方式。若将文中内容应用于实际项目&…

阅读更多 →
开关电源纹波电流公式推导与降纹波系统方案 2026/9/4 18:43:03

开关电源纹波电流公式推导与降纹波系统方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞