我是DDD的初学者,围绕小而简单的领域工作,以便让我掌握所有设计原理。DDD中的实体之间的关系
我有这个简单的域名:机构(Institution
)和他们的可用WiFi点(Place
)保存在数据库中。没有机构就没有地方可以存在。机构有经理用户 - 受让人(User
),有权增加新的地方,重新分配或删除现有的地方。
Code can be found here。目前,对值对象的验证仍然存在。
这受Mathias Verraes on child entities的影响。
这是一个正确的DDD设计?或者至少靠近它?
作为一个以数据为中心的程序员,我仍然想知道如果经验法则是通过聚合根访问聚合,我将如何列出所有机构的所有地方?
生成Uuid
的想法是在实体本身内部(Place::create
)好吗?
应该有一个想法,只有受让人(User
)可以添加/删除的地方表达在域本身或应该是客户的责任?在这种情况下,如果受让人知道他的受控机构(institutionId
在User
?),这将是明智的。
难道Institution::placeById
违背DDD的任何原则吗?也许这是版本库的责任?