gpt4 book ai didi

mysql - Rails 独特的约束模型 + 数据库级别和竞争条件

转载 作者:行者123 更新时间:2023-11-29 14:36:44 24 4
gpt4 key购买 nike

我目前对我的用户组 has_many 进行了以下迁移:通过关联:

class CreateUserGroups < ActiveRecord::Migration
def change
create_table :user_groups do |t|
t.integer :user_id, :null => false
t.integer :group_id, :null => false
t.timestamps null: false
end
end
end

具有以下模型和唯一约束:

class UserGroup < ActiveRecord::Base
belongs_to :user
belongs_to :group
validates_uniqueness_of :user, :scope => :group, :message => :not_unique
end

唯一性验证工作得很好,但如果我的应用程序中的竞争线程导致竞争条件并通过了应用程序级检查怎么办?如何编写迁移以防止数据库级别的用户和组的连接表中出现重复行?

最佳答案

需要添加唯一索引

add_index :user_groups, [:user_id, :group_id], unique: true

关于mysql - Rails 独特的约束模型 + 数据库级别和竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43288089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com