使用 DDD 模式在具有复杂计算的数据库中检索数据

Retrive data in database with complex computation using DDD pattern

我正在尝试使用 DDD 模式构建软件。我对创建和更新数据没有问题。用户填写表单时,如果涉及到业务逻辑,将由我的域自动处理。

我的问题是,如果在检索数据时涉及一些复杂的逻辑,我该如何检索数据? 例如,使用DDD订购打折软件,我应该在域计算后存储总数据吗?或在检索数据库时计算折扣?

感谢您的解释。 (-:

在 DDD 中,你的数据库是一个外部问题(基础设施的一部分),在你的模型中没有任何作用。事实上,数据库通常被抽象为一个接口,供您的域在其计算中使用。您使用数据库来简单地存储和混合模型。

回答你的问题:这取决于你的UL。 例如:如果您需要“保存”订单并在以后以准确的状态检索它,您可以将折扣值存储在数据库中。或者您的域和 UL 可能要求用户转移总数。例如:余额转账应用程序允许应用程序从转账金额中扣除一定百分比(可能称为服务费)。这样的话,减去服务费后的总额最有可能省下来。

不过大多数时候,最好在域中计算折扣,因为折扣是域概念。