正如我从埃文斯的书中所理解的,聚合根是在域中唯一可识别的实体。
现在,我正在建模一个聚合根,它可以由一个字符串唯一标识,该字符串由三个属性组成 - " ProjectCode-Date-CollectionId"。
我可以将此字符串用作聚合根的标识密钥,还是应该使用代理键?
如果我使用代理键,那么每次要将新条目添加到数据库时,我都必须查询该表以查看这三个属性的组合是否已经存在。这样好吗?
答案 0 :(得分:0)
不要将任何逻辑放入聚合根的标识符中, 而且 - 正如实用主义建议的那样 - ProjectCode-Date-CollectionId组合的唯一性听起来像域中的规则。 它可以以各种方式实现,也许是域服务。