我想知道如何正确建模我的聚合。域是会计,我有三个实体:Account、AccountingEntry(这应该是一个值对象吗?)和AccountingTransaction。该帐户可以说是客户的银行帐户。AccountingEntry 是帐户中的一个条目,AccountingTransaction 将构成单个事务的多个条目联系起来(例如,从帐户 A 转移到帐户 B)。一起。
我的想法是将 Account 和 AccountingTransaction 建模为聚合,AccountingEntry 建模为 AccountingTransaction 中的集合。这是为了允许会计交易汇总执行不变量,即交易中的所有条目必须总和为零。这些条目将包含对其关联帐户 ID 的引用(如果我们想撤销交易,这将很有用)。这些账户不会保存对条目的任何引用,但会保留余额。
我会使用 saga 来管理以交易方式记入和借记帐户的过程。
我想知道我是否正确地建模。
我还想知道如何确保无法创建包含对无效(不存在)帐户的引用(ID)的会计条目。该帐户是否应该用作创建条目的工厂,并传入它自己的 ID?