CQRS,仍然没有得到完整,DB中保存的内容;(

Sha*_*iZy 2 c# asp.net-mvc cqrs event-sourcing

我观看并阅读了一些关于CQRS的教程,但是所有这些都没有使用真实世界的例子,所有这些(为了简单起见)只有一个内存事件存储.在这个例子中,通过"重放"事件来获取对象的当前状态是容易和快速的.

但是如何使用sql数据库在一个真实的单词示例中工作.假设我有一个用户系统.

我有UI,我可以添加和编辑用户,但也获得所有用户的列表.

现在,根据教程的说法,我将我的事件保存在数据库中,假设每个用户的个人资料有3个更改,我们有100.000个用户.

现在我有一个GetById的回购.在普通的非CQRS系统中,我根据Id得到一条记录.快速和小型资源使用.

但是现在在CQRS系统上,我必须从数据库中加载3条记录并将它们应用于一个新的用户对象并返回...这不是那么高效,但是我可以说:"也许生活在它身上,因为伐木的好处等等".

但是如何在一个页面上显示50个用户的列表用户场景.50次x 3记录,每页点击??? 这不仅仅是针对客户,也许是发票,预订等,这会浪费什么资源?

我对CQRS/EventSourcing有什么完全错误的认识吗?或者我有这个画袋的生活吗?

亲切的问候

Gra*_*ler 6

非规范化读取模型/持久化视图模型是您所缺少的.CQRS的主要优点是能够以不同方式处理读取和写入,并以不同方式对其进行优化.您将加载带有写入事件的聚合.对于读取,您的系统只会读取为此目的创建的表.该表可能是SQL或NoSql,可能不涉及连接等.

请参阅Microsoft模式并练习CQRS之旅,例如http://msdn.microsoft.com/en-us/library/jj554200.aspx