当前位置:首页 > 影视动漫 >

vs数据模型怎么用(vs数据集怎么使用)

来源:原点资讯(m.360kss.com)时间:2023-07-30 17:37:47作者:YD166手机阅读>>

导读:本文介绍领域模型和数据模型的概念定义,并举例说明两者相互混淆的错误用法,分享如何正确地应用它们。

作者|张建飞

前言

依稀记得我第一次设计一个系统的时候,画了一堆 UML(Unified Modeling Language,统一建模语言)图,面对 Class Diagram(其实就是领域模型),纠结了好久,不知道如何落地。因为,如果按照这个类图去落数据库的话,看起来很奇怪,有点繁琐。可是不按照这个类图落库的话,又不知道这个类图画了有什么用。

现在回想起来,我当时的纠结源自于我对领域模型和数据模型这两个重要概念的不清楚。最近,我发现对这两个概念的混淆不是个例,而是非常普遍的现象。其结果就是,小到会影响一些模块设计的不合理性,大到会影响像业务中台这样重大技术决策,因为如果底层的逻辑、概念、理论基础没搞清楚的话,其构建在其上的系统也会出现问题,非常严重的问题。

鉴于很少看到有人对这个话题进行比较深入的研究和探讨,我觉得有必要花时间认真明晰这两个概念,帮助大家在工作中,更好的做设计决策。

领域模型和数据模型的概念定义

领域模型关注的是领域知识,是业务领域的核心实体,体现了问题域里面的关键概念,以及概念之间的联系。领域模型建模的关键是看模型能否显性化、清晰的表达业务语义,扩展性是其次。

数据模型关注的是数据存储,所有的业务都离不开数据,都离不开对数据的 CRUD,数据模型建模的决策因素主要是扩展性、性能等非功能属性,无需过分考虑业务语义的表征能力。

按照 Robert 在《整洁架构》里面的观点,领域模型是核心,数据模型是技术细节。然而现实情况是,二者都很重要。

这两个模型之所以容易被混淆,是因为两者都强调实体(Entity),都强调关系(Relationship),这可不,我们传统的数据库的数据模型建模就是用的 ER 图啊。

是的,二者的确有一些共同点,有时候领域模型和数据模型会长的很像,甚至会趋同,这很正常。但更多的时候,二者是有区别的。正确的做法应该是有意识地把这两个模型区别开来,分别设计,因为他们建模的目标会有所不同。如下图所示,数据模型负责的是数据存储,其要义是扩展性、灵活性、性能。而领域模型负责业务逻辑的实现,其要义是业务语义显性化的表达,以及充分利用 OO 的特性增加代码的业务表征能力。

vs数据模型怎么用,vs数据集怎么使用(1)

然而,现实情况是,我们很多的业务系统设计,并没有很好的区分二者的关系。经常会犯两个错误,一个是把领域模型当数据模型,另一个是把数据模型当领域模型。

错把领域模型当数据模型

这几天我在做一个报价优化的项目,里面涉及到报价规则的问题,这块的业务逻辑大意是说,对于不同的商品(通过类目、品牌、供应商类型等维度区分),我们会给出不同的价格区间,然后来判断商家的报价是否应该被自动审核(autoApprove)通过,还是应该被自动拦截(autoBlock)。

对于这个规则,领域模型很简单,就是提供了价格管控需要的配置数据,如下图所示:

vs数据模型怎么用,vs数据集怎么使用(2)

如果按照这个领域模型去设计我们的存储的话,自然是需要两张表:price_rule 和 price_range,一张用来存价格规则,一张是用来存价格区间。

vs数据模型怎么用,vs数据集怎么使用(3)

如果这样去设计数据模型,我们就犯了把领域模型当数据模型的错误。这里,更合适的做法是一张表就够了,把 price_range 作为一个字段在 price_rule 中用一个字段存储,如下图所示,里面的多个价格区间信息用一个JSON字段去存取就好了。

vs数据模型怎么用,vs数据集怎么使用(4)

首页 123下一页

栏目热文

scor模型的理解(scor模型主要内容)

scor模型的理解(scor模型主要内容)

图片来源:图虫创意<↓↓点击标题查看文档↓↓>鱼骨图是一种发现问题“根本原因”的方法,它也可以称之为“因果图...

2023-07-30 18:08:04查看全文 >>

vsea模型(vse pr模型是什么)

vsea模型(vse pr模型是什么)

齐鲁网·闪电新闻9月24日讯 今天上午,第四届中国企业论坛举行主题论坛。本次论坛以“新发展格局下的中国企业:使命与路径”...

2023-07-30 18:04:05查看全文 >>

如何使用vsepr理论(VSEPR理论是什么)

如何使用vsepr理论(VSEPR理论是什么)

杂化轨道理论可以解释分子的空间结构,但对未知分子空间结构预测能力不强。价电子对互斥(Valence Shell Ele...

2023-07-30 17:46:31查看全文 >>

VSEPR模型(vsepr模型指的是)

VSEPR模型(vsepr模型指的是)

很多同学都感到学好物理和化学特别难,尤其是进入高中以后,经常可以听到同学中流传着这样一句话“物理难,化学繁,数学作业做不...

2023-07-30 17:57:36查看全文 >>

什么叫vsepr模型(vsepr模型适用于什么)

什么叫vsepr模型(vsepr模型适用于什么)

01初中化学和高中化学的区别目标不同:初中化学是启蒙学科,主要要求同学们掌握简单的化学知识、基本化学实验技能、简单化学计...

2023-07-30 17:44:53查看全文 >>

vsepr理论基于什么(vsepr模型计算公式详细)

vsepr理论基于什么(vsepr模型计算公式详细)

高中化学《物质结构与性质》之六——价层电子对互斥理论:价层电子对互斥理论(VSEPR),等电子体,杂化类型与空间构型的判...

2023-07-30 18:12:53查看全文 >>

VSEPR理论(vsepr理论的主要内容)

VSEPR理论(vsepr理论的主要内容)

本文来自微信公众号:X-MOLNews1893年,瑞士苏黎世大学的Alfred Werner教授预测六配位过渡金属配合物...

2023-07-30 18:04:33查看全文 >>

score模型的特点(z-score模型优势)

score模型的特点(z-score模型优势)

1、SCP(结构-行为-绩效)模型建立人:模型是由美国哈弗大学产业经济学权威 乔.贝恩、谢勒 等人于20世纪30年代建立...

2023-07-30 17:32:17查看全文 >>

scor模型的基本思路(scor模型怎么做)

scor模型的基本思路(scor模型怎么做)

中国航空报讯:航空制造的复杂度在小批量行业中属于顶级,复杂的航空供应链管理必须要运用先进的理念和工具。把握航空现代供应链...

2023-07-30 18:06:19查看全文 >>

兰州大学研究生分数线2023(兰州大学2023年强基计划录取结果)

兰州大学研究生分数线2023(兰州大学2023年强基计划录取结果)

兰州大学2023年硕士研究生招生复试基本分数线(学术学位)兰州大学2023年硕士研究生招生复试基本分数线(专业学位)兰州...

2023-07-30 17:56:19查看全文 >>

文档排行