【问题标题】:How to store votes for CouchDB document?如何存储 CouchDB 文档的投票?
【发布时间】:2011-05-17 13:45:30
【问题描述】:

我正在寻找一个如何在文档中存储投票的好例子。 例如,如果我们有一个已发布的文档,用户可以对其进行投票。 如果我将投票存储在文档的某个字段中,例如:

投票:12345

如果作者正在编辑帖子并且在此期间有人投票,会发生什么?作者将无法保存,因为有人投票,文档将有新的修订。

另一种选择是单独存储投票,每个投票都是文档,还是为每个帖子创建一个包含投票的文档?

如果我决定将每张选票存储在不同的文档中,那么汇总这些数据会有多困难?还是每次显示文件都要计算?

你有什么解决方案?

问候

【问题讨论】:

    标签: couchdb vote document-database


    【解决方案1】:

    我发现这篇文章对于如何在许多用户更新文档时避免冲突(例如投票或将 cmets 添加到博客文章)这一主题非常有帮助。

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

    第三个也是最好的(?)解决方案是将每个评论存储为一个单独的文档,并带有指向博客文章的链接。使用复杂的键使得查询属于帖子的所有 cmets 以及查询用户创建的所有 cmets 变得非常容易,甚至按时间顺序排序。

    【讨论】:

      【解决方案2】:

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

      如果可行,我希望将投票存储在文档中。但我还没有为自己尝试任何这些方法。所以如果你分享你的解决方案,我会很高兴。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多