事件溯源:读取模型规范化或非规范化



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

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

谢谢

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

读取

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

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

最新更新