【发布时间】:2016-11-30 17:11:22
【问题描述】:
在 Rails 4 模型中,我想对员工与部门的关系进行建模。一个员工属于一个部门,一个部门有_许多员工。我可以在员工表中创建一个没有外键的部门 ID 引用吗?
我想这样做的原因是我怀疑这会影响 MySQL(我正在使用的数据库)中的记录锁定行为,并且当我从 Rails 中的多个线程执行并发更新时,它可能会导致随机错误申请。
【问题讨论】:
标签: mysql ruby-on-rails
在 Rails 4 模型中,我想对员工与部门的关系进行建模。一个员工属于一个部门,一个部门有_许多员工。我可以在员工表中创建一个没有外键的部门 ID 引用吗?
我想这样做的原因是我怀疑这会影响 MySQL(我正在使用的数据库)中的记录锁定行为,并且当我从 Rails 中的多个线程执行并发更新时,它可能会导致随机错误申请。
【问题讨论】:
标签: mysql ruby-on-rails
是的,你可以。如果您使用 Rails 4.2 并在迁移中使用 references 或 add_reference,只需将 :foreign_key 选项设置为 false。
您也可以采用@user1063998 描述的方法,只需在您的员工表中添加一个名为department_id 的整数列,但在这种情况下,我建议您也为该列添加一个索引。
【讨论】:
Rails 默认不在数据库级别添加外键约束。
使用迁移,您可以简单地将整数列添加到名为 department_id 的员工表中。如果您需要模仿外键约束的行为,您可以在模型上使用验证。
【讨论】: