【发布时间】:2014-06-06 16:25:22
【问题描述】:
在我们的数据库中,我们有一个comments 和blogs 的表。
有一个字段 comments.comment_blog_index 会随着博客中的每条评论而递增。
...所以如果我们有 3 个特定博客的 cmets,则每个评论的 comment_blog_index 的值是:1、2、3(分别)
设置comment_blog_index 的代码如下所示:
@comment = Comment.new
@comment.comment_blog_index = @blog.comments.count + 1
当两个用户同时触发此代码时会出现问题。它将为两个用户计算相同的值,并且 comment_blog_index 是重复的。
我已经看到Item.increment_counter( :total_bids, item.id ) 的代码,但这要求您已经在数据库中的一个表中存储了一个记录,该表存储了一个总和。在我们的例子中,记录是在 `commments` 表中创建的。
我们如何防止这种情况发生?
【问题讨论】: