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

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

谢谢,

最佳答案

在事件溯源中,您的事件是事实的来源,您的读取模型是从这些事件中计算出来的。
您可以计算标准化和非标准化读取模型 - 选择取决于您。

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

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

关于sql-server - 事件溯源 : Read Model Normalized or Denormalized,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49746788/

10-13 06:40
查看更多