惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
D
DataBreaches.Net
雷峰网
雷峰网
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
F
Fortinet All Blogs
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Engineering at Meta
Engineering at Meta
月光博客
月光博客
V
Visual Studio Blog
美团技术团队
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
博客园 - 【当耐特】
V
V2EX
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东

博客园 - netfocus

IM即时通信软件设计 邮箱核心业务领域建模 DDD中的聚合和UML中的聚合以及组合的关系 DDD战略设计相关核心概念的理解 DDD领域建模基本流程 谈谈Paxos一致性算法和一致性这个名词 EventStore文件存储设计 DDD领域驱动设计 - 设计文档模板 调漂技巧总结 EQueue 2.3.2版本发布(支持高可用) 使用ENode框架前您需要了解的东西(初稿) 各协议授权详情 BIO\NIO\AIO记录 - netfocus - 博客园 限流的三个思路 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路 浅谈我对DDD领域驱动设计的理解 【转载】高并发的核心技术-幂等的实现方案 ENode 2.8 最新架构图简介 三种减库存方式
对关系建模
netfocus · 2019-06-11 · via 博客园 - netfocus

对关系建模

Posted on 2019-06-11 10:57  netfocus  阅读(2155)  评论(0)    收藏  举报

我们在DDD领域建模过程中,往往会很容易忽略对关系的建模,或者可以理清两个名词之间的关系是1对1、1对多、多对多,但是不知道如何在模型中设计这些关系。尤其是在多对多的场景中,仅仅靠体现名词对象之间的关联关系来表达这种关系就会显得缺乏表现力,这个时候就可以将“关系”提炼为模型中一个显式的概念。

例如,

  • 在招聘系统中,一个应聘者使用某一分简历对某个职位进行了投递,此时简历和职位就发生了关系,我们可以把这个关系显式的抽象为:应聘
  • 在权限系统中,一个角色可以被授予一个用户,这次授予我们可以抽象为:授权
  • 在促销系统中,促销活动和促销规则的组合,可以显式抽象为:促销产品

我在以前的文章中也写过,我们不要忽略动词,要对动词有敏锐的嗅觉。领域中的动词,往往他对应的名词就是一个重要的模型概念,即聚合根。例如上面的2个例子,一次应聘的发生,产生一个应聘聚合根;一次授权的发生,产生授权聚合根;而促销产品,则是促销活动和促销规格的组合二产生,也是一种多对多关系的关系建模。

刷新页面返回顶部