1

我的域包括产品、部门、类、制造商、DailySales、HourlySales。

我有一个 ProductRepository,它有助于从存储中存储/检索产品。

我有一个 DepartmentAndClass 存储库,它有助于存储/检索部门和类,以及从这些部门和类中添加和删除产品。

我还有一个 DailySales 存储库,用于从多个分组中检索有关每日销售额的统计信息。IE..

DailySales.GetSalesByDepartment(dateTime)
DailySales.GetSalesByClass(dateTime)
DailySales.GetSalesByHour(dateTime)

像这样在自己的存储库中拥有这些销售跟踪方法是否正确?我在正确的轨道上吗?

4

2 回答 2

1

尽管大多数查询返回一个对象或对象集合,但它也符合返回某些类型的汇总计算的概念,例如对象计数或模型打算计算的数字属性的总和。

    Eric Evans - Domain-Driven Design

这可能被认为是一个读取模型。这些日常销售对象是否用于任何领域模型行为?是否有任何业务逻辑依赖于它们?如果没有,最好将其分离成一个不同的读取模型——此时您将迈出CQRS的第一步。

于 2013-06-17T09:46:01.640 回答
1

由于域非常依赖于上下文,因此某些答案比其他答案更难。然而,我会把统计数据放在Query一边。您可能不想即时计算这些统计信息,因为您将在数据库上进行一些繁重的处理。通常,应该对统计信息进行非规范化,以便在只需要过滤的情况下快速访问。

如果您还没有这样做,您可能想看看 CQRS。

于 2013-06-17T06:49:09.127 回答