我们在Server 2016中使用事件源。我们拥有全部客户产品应用程序,每个应用程序都被CustomerId标记,并在事件存储中获得一个单独的指南行项。这是写事件存储guids的主要标识符。Product附带了许多不同的关系东西(它们没有guids,但有自然密钥),每个客户都有多个地址、帐户、多个采购订单。写入事件存储将被映射到关系数据库表,无论我们选择什么方式。在数据库中,我们尝试用代理键来关联连接,而不是自然键。
代理键可以是Guid吗?或者我们可以利用整数(可能是标识)来实现更快的连接?
记住,写事件存储中唯一的主要标识符是来自客户ID应用程序的Guid (我们想要建模的表列属性的大json blob ),但是可以在读模型中随时更改的子关系表在写事件存储中没有子Guid。
发布于 2017-09-19 01:47:31
是的,您可以在特定的read model实现中使用所需的任何东西,但是您需要考虑到read model应该在任何时候都是可重构的()。因此,当一个read model被重新构建时,它可能使用其他代理I,或者您实现它的方式是每次它得到相同的I(我指的是Autoincrement特性)。
你为什么不尝试去篡改你的数据呢?在event sourcing中,避免使用联接而不是使它们在read model中更快是常见的。
https://stackoverflow.com/questions/46289332
复制相似问题