【问题标题】:Rails: creating column references without foreign keysRails:创建没有外键的列引用
【发布时间】:2016-11-30 17:11:22
【问题描述】:

在 Rails 4 模型中,我想对员工与部门的关系进行建模。一个员工属于一个部门,一个部门有_许多员工。我可以在员工表中创建一个没有外键的部门 ID 引用吗?

我想这样做的原因是我怀疑这会影响 MySQL(我正在使用的数据库)中的记录锁定行为,并且当我从 Rails 中的多个线程执行并发更新时,它可能会导致随机错误申请。

【问题讨论】:

    标签: mysql ruby-on-rails


    【解决方案1】:

    是的,你可以。如果您使用 Rails 4.2 并在迁移中使用 referencesadd_reference,只需将 :foreign_key 选项设置为 false。

    您也可以采用@user1063998 描述的方法,只需在您的员工表中添加一个名为department_id 的整数列,但在这种情况下,我建议您也为该列添加一个索引。

    【讨论】:

      【解决方案2】:

      Rails 默认不在数据库级别添加外键约束。

      使用迁移,您可以简单地将整数列添加到名为 department_id 的员工表中。如果您需要模仿外键约束的行为,您可以在模型上使用验证。

      【讨论】:

        猜你喜欢
        • 2018-10-14
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 2015-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多