gpt4 book ai didi

php - DDD - 在面向文档的存储、PostgreSQL、MongoDB 中存储域对象

转载 作者:行者123 更新时间:2023-11-29 14:18:31 25 4
gpt4 key购买 nike

还有一个关于 DDD 的问题。考虑保留我的聚合(我不想使用事件源)我在互联网上搜索并发现非常有趣 article沃恩·弗农着。简而言之 - 作者赞扬使用面向文档的存储(尤其是 PostgreSQL)的整个结构来存储域对象的概念。

我的问题是——因为我是 DDD 概念的新手——在 DDD 开发中使用这种方法是否很常见?我的意思是使用面向文档的存储将聚合存储为序列化的完整文档?我认为以嵌套方式持久化聚合比使用 ORM 加载和映射更接近 DDD 思想。对于域对象的嵌套结构,文档格式似乎更加自然和灵活。除了上面提到的文章,我找不到更多关于这个概念的评论。

下一个问题是 - 在 PHP 环境中 - 有没有人试图将它与 Doctrine2 联系起来?它似乎可以自动序列化 POPO,并且可以通过某种方式使用 ValueObjects。

提前致谢!

最佳答案

My question is - as I'm new to DDD concept - is it common in DDD development to use this approach?

是的。

请记住一件事:DDD 旨在帮助正确建模业务。如果 change 是域的一个有值(value)的属性(如果这个项目代表了您的业务的竞争优势,则可能是这种情况),那么您需要考虑聚合序列化,即轻松迁移到改进的模型。换句话说,您如何将旧模型的表示映射到新模型?

如果您采用这种方法,那么您可能还想查看 ;数据 block 对于写用例来说是令人满意的,但是只写领域模型并不能提供太多的商业值(value)。您可能更容易开发最终一致的读取模型,而不是尝试根据文档存储的需求构建复杂的预测。

您看到的另一个类似方法是使用事件源聚合的解决方案;写入是通过附加到历史记录来实现的,任何给定更改所涉及的实际状态通常存储在 blob 中。

关于php - DDD - 在面向文档的存储、PostgreSQL、MongoDB 中存储域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38778238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com