CouchDB - 访问/事件记录的首选结构

Posted

技术标签:

【中文标题】CouchDB - 访问/事件记录的首选结构【英文标题】:CouchDB - Preferred structure for access/event logging 【发布时间】:2016-03-03 17:06:21 【问题描述】:

我刚刚开始使用 CouchDB,正在寻找一些最佳实践。我当前的项目是一个类似于 CMS/Wiki 的工具,其中包含许多内容页面。到目前为止,这似乎很适合 CouchDB。接下来我要做的是跟踪每次访问网站上的页面。

每个访问日志都应该包含时间戳、被访问页面的 URI 以及访问它的用户的 UUID。在 CouchDB 中构建此访问日志信息的最佳方式是什么?任何给定页面每天可能被访问多达 100 次。

到目前为止我的一些想法:

    每页 1 个 CouchDB 文档,包含所有访问日志。 每个日志 1 个 CouchDB 文档。

如果每个日志只有一个文档,是否所有日志都应该在它们自己的 CouchDB 数据库中以保持主数据库更清洁?

【问题讨论】:

【参考方案1】:

绝对不是第一选择。因为 CouchDb 是只追加存储,每次更新文档时,都会创建具有相同 ID 但不同修订版的新文档。如果您在一天内对一个页面有 100 次点击,则会创建 100 个新文档,因此您的数据库将很快变得庞大。所以最好使用第二个选项。

至于日志的单独数据库,这取决于您的数据以及您打算如何使用它。如果您决定将所有数据保存在同一个位置,则可以仅为您的日志创建单独的视图。

【讨论】:

以上是关于CouchDB - 访问/事件记录的首选结构的主要内容,如果未能解决你的问题,请参考以下文章

数据库候选作为 CouchDB/Schema 替代品

从 couchdb 视图访问会话信息

CouchDB 未授权访问漏洞

限制用户访问 CouchDB 中的某些文档

CouchDB 视图可访问,但不会运行查询

如何仅为特定用户和角色显示和复制文档?