我是CouchDB和这些类型数据库的新手,所以我有一个问题:我应该如何存储每个用户的活动?我考虑将其存储为附件,使用用户db的用户ID将其存储在不同的数据库中。这些会以某种方式起作用,但似乎并不高效。我正在尝试开发跟踪应用程序,因此数据将快速增长。我必须开发一个我可以轻松管理和跟踪的数据库。您对在CouchDB中存储用户活动有什么建议?
答案 0 :(得分:0)
我建议从主数据库创建一个单独的数据库,然后将每个活动作为单个文档存储在该数据库中。然后,您可以根据需要编写map / reduce视图以进行查询。
因此,如果您的主数据库是call" foo",请创建另一个名为" foo-activity"的数据库。然后将活动文档添加到" foo-activity"像这样:
{
"user_id": 4242,
"activity": "clicking",
"url": "http://foo.bar",
"timestamp": 121212213
}
然后,activity_by_time_and_user视图可能如下所示:
function(doc){
if doc.activity and doc.user_id
emit([doc.timestamp,doc.user_id], doc.activity)
}
然后,您可以根据时间范围进行用户搜索。