Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Domain driven design CQRS/EventStore-建模和存储分层树_Domain Driven Design_Cqrs - Fatal编程技术网

Domain driven design CQRS/EventStore-建模和存储分层树

Domain driven design CQRS/EventStore-建模和存储分层树,domain-driven-design,cqrs,Domain Driven Design,Cqrs,我想知道是否有人已经解决了使用CQR和带有层次树的事件源(事件存储)的问题 我们希望在树中有10到1000个节点和子节点,我担心带有事件源的CQR是否与此问题不匹配。我还没有看到可以在活动商店端使用的快照 同样从DDD的角度来看,我会在我的模型中将其建模为复合设计模式,还是应该更能反映数据在我的读取模型中的存储方式(即本例中的SQL server)。我倾向于同意这些评论,即CQR对于您的应用程序来说确实没有优势。不合身 为了让其他人受益,为了回答您最初的问题,我正在构建一个用于资源调配的应用程序

我想知道是否有人已经解决了使用CQR和带有层次树的事件源(事件存储)的问题

我们希望在树中有10到1000个节点和子节点,我担心带有事件源的CQR是否与此问题不匹配。我还没有看到可以在活动商店端使用的快照


同样从DDD的角度来看,我会在我的模型中将其建模为复合设计模式,还是应该更能反映数据在我的读取模型中的存储方式(即本例中的SQL server)。

我倾向于同意这些评论,即CQR对于您的应用程序来说确实没有优势。不合身

为了让其他人受益,为了回答您最初的问题,我正在构建一个用于资源调配的应用程序,它使用CQRS&EventSourcing,基本上是层次树。我正在使用图形数据库[Neo4J]来处理层次结构。。。[6-8个不同级别的大量组]

域自下而上地反映关系,而Neo4J将处理这两个方向。这样,eventStore可以非常快速地更新,对于那些需要遍历树/图[以便创建可访问节点列表]的处理程序,他们可以使用图形数据库进行更新

CQRS实际上非常适合这个应用程序,我非常惊讶地发现我的方法完全没有倒退。每个人似乎都同意,这是一个比更传统的CRUD方法更好的选择


我正在替换的系统将这些关系存储在SQL中,而这正是存在巨大性能问题的地方!这应该更好。

我倾向于同意这些评论,即CQR对于您的应用程序来说确实没有优势。不合身

为了让其他人受益,为了回答您最初的问题,我正在构建一个用于资源调配的应用程序,它使用CQRS&EventSourcing,基本上是层次树。我正在使用图形数据库[Neo4J]来处理层次结构。。。[6-8个不同级别的大量组]

域自下而上地反映关系,而Neo4J将处理这两个方向。这样,eventStore可以非常快速地更新,对于那些需要遍历树/图[以便创建可访问节点列表]的处理程序,他们可以使用图形数据库进行更新

CQRS实际上非常适合这个应用程序,我非常惊讶地发现我的方法完全没有倒退。每个人似乎都同意,这是一个比更传统的CRUD方法更好的选择


我正在替换的系统将这些关系存储在SQL中,而这正是存在巨大性能问题的地方!这应该更好。

这些节点之间存在哪些不变量/一致性规则?节点代表什么?你在二叉树领域工作吗?最好的描述方式是itunes类型的树结构,我们允许用户上传视频。可能有许多子文件夹(艺术家姓名/专辑等)。绝对不在二叉树的范围内。我们可以允许用户删除文件夹(这将删除视频),在文件夹之间移动视频,删除视频,并将视频从一个文件夹复制到另一个文件夹。我只需沿着树向下懒加载每个子树,然后如果用户选择了一个子树,则懒加载其子树。我看不到任何其他的需求,除了你可以做的,例如windows资源管理器树状结构。看起来非常粗糙,解决了很多次(现成的组件),在UI领域。。。没有看到与DDD的相关性。在这种情况下,您希望从使用eventsourcing/CQR中获得什么价值?为什么不将简单的模型节点作为单独的(数据)实体并使用它来完成呢?IMO使用数据模型,而不是域模型。首先,您需要能够将这些权限传播到后代节点。您可以使用消息传递或批量更新(SQL非常擅长基于集合的操作)。如果我说“简单节点模型”,我不是说你不能使用OO。对节点进行建模,使其封装其直接子节点(或引用标识符)和适用的permissionset。在节点行为中对权限断言进行编码。这会使它成为域模型吗?可能是的,但我怀疑规则是否在不断变化:-)。依我看,事实并非如此。这些节点之间存在哪些不变量/一致性规则?节点代表什么?你在二叉树领域工作吗?最好的描述方式是itunes类型的树结构,我们允许用户上传视频。可能有许多子文件夹(艺术家姓名/专辑等)。绝对不在二叉树的范围内。我们可以允许用户删除文件夹(这将删除视频),在文件夹之间移动视频,删除视频,并将视频从一个文件夹复制到另一个文件夹。我只需沿着树向下懒加载每个子树,然后如果用户选择了一个子树,则懒加载其子树。我看不到任何其他的需求,除了你可以做的,例如windows资源管理器树状结构。看起来非常粗糙,解决了很多次(现成的组件),在UI领域。。。没有看到与DDD的相关性。在这种情况下,您希望从使用eventsourcing/CQR中获得什么价值?为什么不将简单的模型节点作为单独的(数据)实体并使用它来完成呢?IMO使用数据模型,而不是域模型。首先,您需要能够将这些权限传播到后代节点。您可以使用消息传递或批量更新(SQL非常擅长基于集合的操作)。如果我说“简单节点模型”,我不是说你不能使用OO。对节点进行建模,使其封装其直接子节点(或引用标识符)和作为ap的permissionset