CQRS 中一次事务中的多个聚合根创建

发布于 2024-09-18 23:32:04 字数 939 浏览 2 评论 0原文

我想知道如何在 CQRS 中创建多个聚合根。

示例:我有一个手机聚合根和 Simcard 聚合根。身份证号码 这些聚合应该是订阅聚合根的一部分。

我需要创建一个基于 SimCard 和 Handset 的订阅聚合。系统中不存在 SimCard 和 Handset 聚合。它们是在创建订阅时创建的。 删除订阅后,SimCard 和手机不会被删除。 业务原因:用户可能会在同一手机中插入不同的 SimCard,或者手机支持双 SimCard。

业务规则: 电话号码应该是唯一的。 手机序列号应该是唯一的。 一项订阅与一部手机相关联 一部手机与 1 个或多个电话号码相关联。

Class Handset { 
  String serialNumber 
 Handset(UUID id,serialNumber){ 
    super(id); 
    this.serialNumber=serialNumber; 
} 
} 

Class SimCard{ 
  String phoneNumber 
  SimCard(UUID id, String phoneNumber){ 
     super(id); 
        this. phoneNumber= phoneNumber;
  } 
 } 

Class Subscription { 
     UUID id 
     UUID deviceid 
      UUID simCardid 

    Subscription (UUID id, UUID deviceid, UUID simCardid){ 
             Super(id); 
             This. Deviceid= deviceid; 
             This. simCardid= simCardid; 
     } 
     }
  • 隐藏引用的文本 -
  • 显示引用的文本

I would like to know how multiple aggregate root are created in CQRS.

Example: I have a handset aggregate root and Simcard aggregate root. The id
from these aggregate should be part of subscription aggregate root .

i need to create a Subscription aggregate based on SimCard and an Handset.SimCard and Handset aggregate do not exist in the system . they are created when Subscription is created .
When Subscription is deleted SimCard and Handset is not deleted.
Business reason: user might insert different SimCard into the same Handset or the handset supports dual SimCards.

business rule :
Phone number should be unique.
Handset serialNumber should be unique.
One subscription is associated with one handset
One handset is associated with 1 or more phone number.

Class Handset { 
  String serialNumber 
 Handset(UUID id,serialNumber){ 
    super(id); 
    this.serialNumber=serialNumber; 
} 
} 

Class SimCard{ 
  String phoneNumber 
  SimCard(UUID id, String phoneNumber){ 
     super(id); 
        this. phoneNumber= phoneNumber;
  } 
 } 

Class Subscription { 
     UUID id 
     UUID deviceid 
      UUID simCardid 

    Subscription (UUID id, UUID deviceid, UUID simCardid){ 
             Super(id); 
             This. Deviceid= deviceid; 
             This. simCardid= simCardid; 
     } 
     }
  • Hide quoted text -
  • Show quoted text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文