我们使用 SQL Server 2016 的事件源。我们有完整的客户产品应用程序,每个应用程序都标记为CustomerId
并在事件商店中获取单个指南行项目。这是写入事件存储指南的主要标识符。产品应用程序附带许多不同的关系事物(没有引导,但有自然键),每个客户都有多个地址、帐户、多个采购订单。写入事件存储将按照我们选择的任何方式映射到关系数据库表。在数据库中,我们尝试通过代理键而不是自然键来关联连接。
代理键可以是 Guid,还是我们可以利用整数(也许是 Identity)来加快连接速度?
请记住,写入事件存储中唯一的主要标识符是来自客户 ID 应用程序的 Guid(带有我们想要建模的一堆表列属性的大 json blob),但是在读取模型中可以随时更改的子关系表没有Write 事件存储中的子 Guid。
是的,您可以在特定的情况下使用您需要的任何东西read model
实施,但你需要考虑到read model
应该是可重建的随时。所以,当一个read model
重新构建后,它可能会使用其他代理 ID,或者您只需以每次获得相同 ID 的方式实现它(我指的是Autoincrement
特征)。
附:你为什么不尝试对你的数据进行非规范化呢?在event sourcing
通常避免使用 join 而不是让它们更快read model
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)