【发布时间】:2020-05-20 10:10:25
【问题描述】:
我正在构建一个由给定表提供支持的功能,称为Urls,结构如下:
externalId| activatedId | url | userId
此表由 2 个场景(流)驱动:
每当用户在我的系统中创建帐户时,就会从 kafka 队列中使用一个事件来检索 user id 和 url。然后这些在相应的列上持久化
Urls。 所以此时我们确实有externalId和activatedId为空。externalId和activatedId在用户激活其帐户后的稍后阶段填充。这意味着userId也将从表中删除,保持url不变。
鉴于这是两个独立的流程,并且我正在尝试以域驱动方法来设计这两个流程,我正在考虑创建 2 个存储库,访问相同的 Urls 表:
UserCreateRepositoryUserActivationRepository
然后每个存储库都会知道它自己的 URL 表示:
-
UserCreateRepository将使用UserCreationUrl; -
UserActivationRepository将使用UserActivationUrl;
我想展开讨论以了解什么是最好的方法,因为我觉得只有一个存储库会混合两种流程,而且我们正在处理不同的场景实体。
【问题讨论】:
-
也许解决方案之一是拥有 2 个不同的表来代表这 2 个实体,但它们也是相关的,所以这里有点分歧
标签: domain-driven-design software-design event-driven-design