我正在寻找一个如何在文档中存储投票的好例子。例如,如果我们有一个已发布的文档,用户可以对其进行投票。如果我将投票存储在文档的某个字段中,例如:
票数:12345
如果作者正在编辑帖子并且在此期间有人投票,会发生什么?作者将无法保存,因为有人投票并且文档将具有新的修订版。
另一种选择是单独存储投票,每个投票都是文档,还是为每个帖子创建一个带有投票的文档?
如果我决定将每张选票存储在不同的文档中,那么汇总这些数据会有多困难?还是每次显示文件时都必须计算?
你的解决方案是什么?
问候
我正在寻找一个如何在文档中存储投票的好例子。例如,如果我们有一个已发布的文档,用户可以对其进行投票。如果我将投票存储在文档的某个字段中,例如:
票数:12345
如果作者正在编辑帖子并且在此期间有人投票,会发生什么?作者将无法保存,因为有人投票并且文档将具有新的修订版。
另一种选择是单独存储投票,每个投票都是文档,还是为每个帖子创建一个带有投票的文档?
如果我决定将每张选票存储在不同的文档中,那么汇总这些数据会有多困难?还是每次显示文件时都必须计算?
你的解决方案是什么?
问候
这将导致冲突。CouchDB 指南中有一章是关于处理冲突的。 http://guide.couchdb.org/draft/conflicts.html
如果您使用中间件(例如 PHP),它可以识别并处理冲突。(参见 wiki 示例代码:http ://wiki.apache.org/couchdb/Replication_and_conflicts )
如果你想提供一个纯 CouchApp,应该可以使用更新处理程序来自动管理一些常见的冲突情况。http://wiki.apache.org/couchdb/Document_Update_Handlers
如果可行,我希望将投票存储在文档中。但我还没有为自己尝试任何这些方法。所以如果你分享你的解决方案,我会很高兴。
我发现这篇文章对于如何避免在许多用户更新文档时发生冲突(例如投票或在博客文章中添加评论)非常有帮助。
http://www.cmlenz.net/archives/2007/10/couchdb-joins
第三个也是最好的(?)解决方案是将每个评论存储为一个单独的文档,并带有指向博客文章的链接。使用复杂的键可以很容易地查询属于帖子的所有评论以及查询用户发表的所有评论,甚至按时间顺序排序。