CouchDB - access/event 日志记录的首选结构
CouchDB - Preferred structure for access/event logging
我刚刚开始使用 CouchDB 并正在寻找一些最佳实践。我当前的项目是一个 CMS/Wiki-like 工具,其中包含许多页面的内容。到目前为止,这似乎很适合 CouchDB。接下来我要做的是跟踪每次访问网站上的页面。
每个访问日志都应包含时间戳、被访问页面的URI和访问用户的UUID。在 CouchDB 中构建此访问日志信息的最佳方式是什么?很可能任何给定的页面每天最多被访问 100 次。
到目前为止我有几个想法:
- 每页 1 个 CouchDB 文档,包含所有访问日志。
- 每个日志 1 个 CouchDB 文档。
如果每个日志一个文档,是否所有日志都应该在它们自己的 CouchDB 数据库中以保持主数据库更清洁?
绝对不是第一个选项。因为 CouchDb 是一个仅附加存储,每次更新文档时,都会创建具有相同 ID 但不同修订版的新文档。如果一天中某个页面有 100 次点击,将创建 100 个新文档,因此您的数据库将很快变得庞大。所以最好使用你的第二个选项。
至于日志的单独数据库,这取决于你的数据和你打算如何使用它。如果您决定将所有数据保存在同一个地方,您可以只为您的日志创建单独的视图。
我刚刚开始使用 CouchDB 并正在寻找一些最佳实践。我当前的项目是一个 CMS/Wiki-like 工具,其中包含许多页面的内容。到目前为止,这似乎很适合 CouchDB。接下来我要做的是跟踪每次访问网站上的页面。
每个访问日志都应包含时间戳、被访问页面的URI和访问用户的UUID。在 CouchDB 中构建此访问日志信息的最佳方式是什么?很可能任何给定的页面每天最多被访问 100 次。
到目前为止我有几个想法:
- 每页 1 个 CouchDB 文档,包含所有访问日志。
- 每个日志 1 个 CouchDB 文档。
如果每个日志一个文档,是否所有日志都应该在它们自己的 CouchDB 数据库中以保持主数据库更清洁?
绝对不是第一个选项。因为 CouchDb 是一个仅附加存储,每次更新文档时,都会创建具有相同 ID 但不同修订版的新文档。如果一天中某个页面有 100 次点击,将创建 100 个新文档,因此您的数据库将很快变得庞大。所以最好使用你的第二个选项。
至于日志的单独数据库,这取决于你的数据和你打算如何使用它。如果您决定将所有数据保存在同一个地方,您可以只为您的日志创建单独的视图。