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

推荐订阅源

Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
Microsoft Security Blog
Microsoft Security Blog
C
Check Point Blog
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
阮一峰的网络日志
阮一峰的网络日志
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
宝玉的分享
宝玉的分享
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
A
About on SuperTechFans
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed

博客园 - 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个例子,一次应聘的发生,产生一个应聘聚合根;一次授权的发生,产生授权聚合根;而促销产品,则是促销活动和促销规格的组合二产生,也是一种多对多关系的关系建模。

刷新页面返回顶部