2010-11-29 94 views
2

我正在寻找一个很好的例子来说明如何在文档中存储投票。 例如,如果我们有一个文章是帖子,用户可以投票。 如果我存储在一个现场投票的文件中,例如:如何存储CouchDB文档的投票?

投票数:12345

会如果作者编辑文章,在此期间有人票怎么办?作者将无法保存,因为有人投票并且文档将会进行新的修改。

另一种选择是分别存储选票,每张选票是文件,还是为每个帖子创建一个票数为票的文件?

如果我决定将每个投票存储在不同的文档中,聚合这些数据的难度有多大?或者我每次展示文档时都必须计算它?

您的解决方案是什么?

关于

回答

1

这会导致冲突。 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

如果有效,我宁愿将投票存储在文档中。但我还没有尝试过这些方法。所以我会很高兴如果你分享你的解决方案。

0

我发现这篇文章对于很多用户在更新文档时如何避免冲突的主题非常有帮助,例如投票或向博客文章添加评论。

http://www.cmlenz.net/archives/2007/10/couchdb-joins

第三和最好的(?)解决方案是商店与链接到博客文章单独的文档的每个评论。使用复杂的键可以非常容易地查询属于帖子的所有评论以及查询用户所做的所有评论,甚至按照时间顺序排序。