【发布时间】:2012-03-10 18:23:35
【问题描述】:
首先可能没有正确的答案,但我敢肯定有比我更了解的人能够提供帮助。
我有 3 个实体:用户、博客、帖子。
系统可以有任意数量的用户。
用户可以拥有任意数量的博客,但每个博客只有一个用户。
博客的帖子数量可以与用户发布的数量一样多,并且所有帖子都来自拥有该博客的同一用户(即,如果 John 拥有博客 Food,则只有 John 可以在此博客中发帖)。当然,每篇文章都有一个父博客。
然后我有用户个人资料页面,我想在其中显示所有用户详细信息、他所有博客的名称以及最近 5 个帖子。
然后我有一个博客页面,其中显示了博客的详细信息、所有者(用户)的名称和所有帖子的标题。
然后我有一个显示帖子详细信息、博客名称和所有者名称的帖子页面。
如你所见,我在它们之间都有关系,但它们都不能作为聚合。
在代码中定义实体并不难,我遇到的问题是定义存储库。我需要多少? 3 - 每个实体一个? 1 - 一切?如何执行查找?
例如获取用户页面中的最后 5 个帖子。用户没有对帖子的引用,而是拥有一个博客容器,其中每个博客又拥有一个帖子容器。我的存储库中是否应该有一个接受 UserID 并返回帖子列表的方法?或者它应该是一项服务?此外,我通常不执行所有数据的加载,而是延迟加载。通过检索现有的用户实体,我不会加载它的博客,除非需要它们(第一次访问时)。
提前致谢。
【问题讨论】:
-
“存储库”与“服务”到底是什么意思? IMO 这个问题对 SO 来说太宽泛了。
-
你可以在这里找到定义en.wikipedia.org/wiki/Domain-driven_design 是的,我有点担心这个问题可能对 SO 来说太宽泛了......
标签: architecture domain-driven-design