事件采购:读取模型归一化或非规范化

时间:2018-04-10 06:27:29

标签: sql-server asp.net-core cqrs event-sourcing

在事件采购中,读模型投影应该归一化(关系)还是非规范化(宽水平)?公司正在使用两个SQL Server 2016数据库:,WriteLogDatabase和ReadProjectionDatabase。 (公司目前没有NoSQL MongoDB,这会有所帮助)

在金融公司,我们导入平面文件(多个1行客户记录),应用业务过滤器,验证,转换逻辑,并将API插入多个表:客户地址,客户贷款类型,客户电话,客户财务报表。当我们在将来的平面文件中获得新行时,我们必须再次将所有表重新加入1行,提取所有数据,进行相应的更新,并将数据反馈到多个表中。只是想知道它在Event Sourcing中是否更好地将所有东西都放在一个宽的水平非规范化方法中?

谢谢,

1 个答案:

答案 0 :(得分:4)

在事件采购中,您的事件是真实的来源,您的阅读模型是根据这些事件计算出来的。 您可以计算规范化和非规范化读取模型 - 选择取决于您。

应针对读取/查询操作优化读取模型。因此,如果非规范化读取模型允许您避免读取连接 - 请使用它。

另一方面,如果您的阅读模型用于某些自由格式的分析和报告工具,则标准化表格对用户来说可能更方便。