我正在研究遗留项目,并尝试在适合的某些地方引入CQRS。为了与所有关系遗留物集成,我想将我的聚合(或其一部分)投影到关系数据库中的表中。
我还希望聚合ID是该投影表上的自动递增值。我知道这似乎违背了谷物,因为它将读取模型与写入模型混合在一起。但是,我不想用外键GUUID污染旧架构。
这是完全禁忌,如果是,你会建议什么?
编辑:也许我可以将GUUID存储在投影表中,这样当事件被投射时我可以识别要更新的行,但是仍然有一个自动增加的列用于加入?
答案 0 :(得分:2)
使用基础架构层为您的实体创建的ID没有任何问题。此模式通常用于Why should the static field be accessed in a static way?本书:
您的问题是您想要使用在另一个有界上下文中创建的ID。这是一个巨大而完整的禁忌,而不是id由基础架构层创建的事实。
您应该在Bounded Context中创建id,并使用它来引用其他Contexts中的聚合(正如您在编辑问题时所写的那样)。