如何存储CouchDB文档的投票?

如何存储CouchDB文档的投票?,couchdb,vote,document-database,Couchdb,Vote,Document Database,我正在寻找一个如何在文档中存储投票的好例子。 例如,如果我们有一个文件是post,用户可以投票支持它。 如果我将投票存储在文档的某个字段中,例如: 投票:12345 如果作者正在编辑文章,而在此期间有人投票,会发生什么?作者将无法保存,因为有人投票,文档将进行新的修订 另一个选项是单独存储投票,每个投票都是文档,还是创建一个文档,其中包含每个帖子的投票 如果我决定将每一张选票存储在不同的文档中,那么汇总这些数据有多困难?或者我每次显示文档时都要计算它 你的解决方案是什么 这将导致冲突。Couch

我正在寻找一个如何在文档中存储投票的好例子。 例如,如果我们有一个文件是post,用户可以投票支持它。 如果我将投票存储在文档的某个字段中,例如:

投票:12345

如果作者正在编辑文章,而在此期间有人投票,会发生什么?作者将无法保存,因为有人投票,文档将进行新的修订

另一个选项是单独存储投票,每个投票都是文档,还是创建一个文档,其中包含每个帖子的投票

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

你的解决方案是什么


这将导致冲突。CouchDB指南中有一章是关于处理冲突的。

如果使用中间件(如PHP),它可以识别和处理冲突。(有关示例代码,请参见wiki:)

如果您想提供纯CouchApp,那么应该可以使用更新处理程序自动管理一些常见的冲突案例


如果有效的话,我更愿意将选票存储在文档中。但我自己还没有尝试过这些方法中的任何一种。因此,如果您能分享您的解决方案,我将非常高兴。

我发现这篇文章对于如何避免许多用户在更新文档(如投票或在博客帖子中添加评论)时发生冲突非常有帮助

第三个也是最好的(?)解决方案是将每条评论存储为一个单独的文档,并带有博客文章的链接。使用复杂的键可以很容易地查询属于一篇文章的所有评论,以及查询用户的所有评论,甚至可以按时间顺序排序