2012-02-13 119 views
1

我有一个实体Institute和存储库InstituteRepository它根据传递的标准提取Institute对象。现在在我的应用程序的某个地方,我需要ViewCount作为研究所(研究所页面被查看的次数,在数据库表中存储和更新)。在哪里把这些查询DDD

我缓存了我的Institute对象,但由于ViewCount非常具有动态性,我想每次都重新抓取它。问题是,我应该在哪里放置我的getViewCount()功能?

我可以在InstituteRepository有类似getViewCount()的功能吗?如果没有,最好的地方是什么?

欣赏任何帮助和抱歉的模糊标题。

回答

3

这绝对适合追踪“查看相关行为”的单独有界情境。不需要存储库。假设您正在使用关系数据存储,只需执行“插入InstituteViewRecord(instituteid,user-who-viewed-id,日期和时间查看)值(...)”以跟踪此信息,并“从InstituteViewRecord where instituteid =”选择count(*)。吻。使用RPC或其他消息传递机制可以满足任何远程需求。我怀疑这个功能是核心领域。

+0

+1,此处可能不需要应用DDD模式。你甚至可以把它分解到一个包含每个视图的简单计数器的表格。 – 2012-02-13 12:17:40

+0

但我在哪里写这些查询?我应该在DAO中编写它们并直接在需要的地方使用DAO吗? – Vikk 2012-02-13 13:31:38

+0

是的,这有什么问题?想想这样:购买我的额外抽象是什么?我真的需要在各处应用相同的模式吗? – 2012-02-13 22:34:14