在哪里存储业务数据?

时间:2015-06-24 14:52:57

标签: ruby-on-rails mongodb design-patterns architecture

我有一个使用MongoDB的Rails应用程序。我将揭露一个案例,尽管还有许多其他案例适合。

我有一个用户模型。一些用户字段:

:first_name
:last_name
:email
:password_hash
:avatar
:roles

有时我们有兴趣了解一些用户如何与我们的应用互动的数据。例如,我们想知道每个用户获得的访问次数。我想到的是从客户端发布POST。每当用户访问某人的个人资料时,该个人资料所有者(用户)内的字段就会增加。

因此,我们可以根据“统计数据”运行报告。

我的一位队友辩称,这不是一个好习惯,因为我们最终会在整个应用程序中提出大量请求。人们通常如何做到这一点?通过AJAX发出POST请求并将其存储在数据库中是一个好习惯吗?

2 个答案:

答案 0 :(得分:0)

如果某人的个人资料访问需要连接,则当控制器的current_user操作(显示配置文件视图的操作)为show时,您可以使用view_count(访问者)在数据库中添加记录。打电话,你会知道谁在访问每个档案。

否则,只需在User模型中添加show列,并在调用new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q=" + mapData.getPlace()); 操作时增加此列。

答案 1 :(得分:0)

任何问题都有不同的方法,也取决于要求。

例如,何时要求提供这些报告?您是按需要求它们还是计划每天运行一次?在后者中,您可以创建一个cron任务或类似任务,以在低活动时间(夜晚?)生成报告。

如果您需要它们,可以尝试缓存一些数据以减少服务器负载。

但问题是,如果你需要存储统计数据,数据,你还是需要点击数据库。使这个命中快速轻巧(仅发送id并生成信息服务器端的其余部分)。

如果您不希望最终使用与stat相关的字段填充users表,则可以使用与具有id的用户相关的信息创建关联表。但同样,你想要统计数据?你需要把它们存放在某个地方。