领域模型图(数据架构/ER图)

简介: 本文介绍如何通过四色原型法进行领域建模,构建数据架构中的ER图。以风控系统为例,依次解析关键流程、识别时标性原型(MI)、参与方-地点-物品原型(PPT)、角色原型(Role)和描述原型(DESC),逐步提炼出实体与关系,最终形成简洁的ER图,助力数据模型设计。

数据架构重要的输出是数据-实体关系图,简称 ER 图。ER 图中包含了实体(数据对象)、关系和属性 3 种基本成分。ER 图可以用来建立数据模型。如何准确的建立产品的数据模型,需要分解出业务需要什么样的数据。数据域的分解过程是站在业务架构的基础上,对业务域进行模型分析的过程。说起业务建模,大家很快会想到领域模型这个概念。这里的思路是通过领域建模来逐步提取系统的数据架构图。

说到领域模型,这里采用四色原型法进行业务模型的抽象。在进行四色模型分析前,我们先了解下四色模型的一些基本概念。四色模型,顾名思义是通过四种不同颜色代表四种不同的原型。

  • Moment-Interval Archetype 时标性原型
  • 表示事物在某个时刻或某一段时间内发生的。使用红色表示,简写为 MI.
  • Part-Place-Thing Archetype 参与方-地点-物品原型.
  • 表示参与扮演不同角色的人或事物。使用绿色表示。简写为 PPT。
  • Role Archetype 角色原型
  • 角色是一种参与方式,它由人或组织机构、地点或物品来承担。使用黄色表示。简写为 Role。
  • Description Archetype 描述原型
  • 表示资料类型的资源,它可以被其它原型反复使用,并为其它原型提供行为。使用蓝色表示。简写为 DESC。

以风控系统为例,进行领域建模的过程如下:

1.关键流程

在进行业务建模前,首先需要梳理出业务的流程,这一步在业务架构分解环节中已经完成。按照四色建模法的原则,将业务流程图进行一点改造。在原来的流程图上,将流程涉及的事务和角色添加进来。
改造之后的流程图如下:

2.领域模型骨干

从业务流中,我们可以清晰的定义出 Moment-Interval Archetype (时标性原型),流程中的每个节点符合 MI 的定义,即事物在某个时间段内发生。在 MI 的定义过程中,一种方法是通过名词+动词进行定义。那么,风控的 MI 即为:数据采集、规则 &模型设置、风险识别、告警通知、风险处置、风险分析(MI 使用红色表示)。

在得到骨干之后,我们需要丰富这个模型,使它可以更好的描述业务概念。这里需要补充一些实体对象,通常实体对象包括:参与方、地点、物(party/place/thing)。

Part-Place-Thing Archetype(参与方-地点-物品原型):业务对象、规则、模型、异常风险、通知、异常事件、分析报告(PPT 使用绿色表示)。

领域模型骨干图,如下:

3.领域模型角色

在领域模型骨干的基础上,需要把参与的角色(role)带进来。Role 使用黄色表示。如下图:

4.领域模型描述

最后将模型的描述信息添加进来,模型的描述信息中涵盖模型的具体属性。这些描述信息对于后面数据库设计有很大的影响。模型描述使用蓝色标注,如下图:

5.提取 ER 图

领域模型构建完成之后,在此基础上,我们已经能够初步的掌握整个系统的数据模型。其中绿色的 Part-Place-Thing Archetype(参与方-地点-物品原型),可以用来表示 ER 图中的实体模型。红色的 Moment-Interval Archetype(时标性原型),可以用来表示 ER 图中的关系。对领域模型架构图进行提炼,得到如下图:

实体(Entity)和联系(RelationShip)存在一定的关联关系,一般存在 3 种约束性关系: 一对一约束、一对多约束和多对多约束。将这些约束性关系表现在 ER 图中,用于展现实体与实体间具体的关联关系,最终输出 ER 图。(考虑保证 ER 的简洁性,这里并没有把模型的属性画进来)

相关文章
|
16小时前
|
XML JSON Java
2.映射关系(1-1 1-n n-n)
MyBatis中通过resultMap实现关联映射:一对一使用基本映射或resultMap解决字段不一致;一对多在“一”方配置`<collection>`,如用户关联多个角色;多对一通过`<association>`实现,如博客关联作者;多对多借助中间类,双方均用`<collection>`维护关系,如用户与部门的双向关联。
|
15小时前
|
JSON Java API
用 Swagger2 让 Spring Boot 接口“自己说话”
Swagger2助力Spring Boot项目实现API自动化文档,通过注解自动生成接口说明与测试页面,提升前后端协作效率,支持在线调试、参数描述、示例响应,告别手动维护文档与Postman频繁切换。
|
16小时前
|
SQL 运维 分布式计算
如何做好SQL质量监控
本文介绍如何通过CloudLens for SLS实现SQL质量监控,帮助用户全面掌握SQL使用情况。涵盖健康分、服务指标、运行明细、SQL Pattern分析及优化建议五大维度,助力识别性能瓶颈、优化资源使用,提升日志分析效率与治理能力。
 如何做好SQL质量监控
|
14小时前
|
SQL 数据库连接 数据库
Activity代码实现
本教程演示如何使用Activiti创建、部署并操作简单工作流。包括流程定义、启动实例、任务查询与完成,结合代码与数据库验证,实现审批流程自动化管理。
Activity代码实现
|
16小时前
|
运维 Devops 开发工具
生产环境缺陷管理
git-poison是一款基于go-git的生产环境缺陷管理工具,实现bug的分布式追溯与自动化卡点,有效避免多分支开发中的漏修、漏发问题,降低协同成本,提升发布安全性。
生产环境缺陷管理
|
13小时前
|
Java Maven 数据库
Activiti工程搭建
本文介绍如何在IntelliJ IDEA中创建Maven工程并安装ActiBPM插件,支持Activiti流程设计。内容涵盖工程搭建、插件下载与兼容性修复、依赖配置及启动类和配置文件的编写,助力快速集成工作流引擎。
|
13小时前
|
Dubbo Java 应用服务中间件
入门运行Soul
Soul 是基于 WebFlux 构建的响应式 API 网关,支持高性能、异步处理与多协议集成,如 Dubbo、Spring Cloud。具备插件化架构、动态配置、流量控制、热插拔等特性,兼容多种语言,支持集群部署与 A/B 测试,网关延迟低至 1~2ms。
|
16小时前
|
Java 测试技术 Linux
生产环境发布管理
本文介绍大型团队如何通过自动化部署平台实现多环境(dev/test/pre/prod)高效发布,涵盖各环境职责、基于Jenkins+K8S的CI/CD流程、分支管理与日志排查方案,提升发布效率与系统稳定性。
 生产环境发布管理
|
13小时前
|
Arthas Java 测试技术
基础指令
Arthas 是一款Java诊断工具,支持查看线程信息(dashboard、thread)、反编译类(jad)、观测方法调用(watch)等。可通过命令查看最忙线程、阻塞线程、指定状态线程及方法入参出参,支持采样间隔设置,帮助快速定位性能问题。
基础指令
|
14小时前
|
存储 JSON Dubbo
Soul数据库设计
该插件采用数据库设计,存储插件、选择器、规则及其匹配条件的配置数据。通过UML类图展示表结构,核心为plugin、selector、rule三大模块,支持多层级关联:插件→选择器→规则→匹配条件,各规则处理逻辑以JSON存于handle字段,适用于Dubbo、SpringCloud等协议。

热门文章

最新文章