只读数据库视图如何适合存储库模式?

300*_*aud 19 domain-driven-design aggregateroot repository-pattern sql-view

示例:您的数据库具有名为"CustomerOrdersOnHold"的SQL视图.此视图返回特定客户和订单数据字段的过滤组合.您需要在应用程序中从此视图中获取数据.如何访问这样的视图适合存储库模式?你会创建一个"CustomerOrdersOnHoldRepository"吗?这样的只读视图是否被视为聚合根?

Moh*_*bed 26

我更喜欢分离读取存储库,最好甚至将其名称更改为Finder或Reader,存储库用于域使用而不是用于查询只读数据,您可以参考本文,解释了Finder分离表单存储库的用法.

我还建议阅读模式从写模型架构分离CQRS

这种架构允许您将读取模型与写入模型分开,即使在数据存储和事件源的使用方面也是如此.

对于中间解决方案,您可以利用一些CQRS概念,而无需通过将存储库与查找器分离来分离数据库的复杂性,请阅读此文章

对于此类解决方案的示例(使用相同的数据库但分离查找器形成存储库),请检查此示例