【问题标题】:Should I use rails 4.2 add foreign_key or not?我应该使用rails 4.2添加foreign_key吗?
【发布时间】:2015-03-27 03:01:39
【问题描述】:

通过发布 rails 4.2 add_foreign_key 方法被引入。据我了解,它与model:referencesadd_index 一起用作迁移的组合。

假设我只使用 PostreSQL。 (add_foreign_key 仅限于 MySQL 和 PostreSQL)。应该停止使用migration model:referencesadd_index 并开始使用add_foreign_key 吗?如果是/否,为什么?新的add_foreign_key 方法有什么好处?值得换吗?

【问题讨论】:

  • 不仅限于结合model:referenceadd_index。这是关于向数据库添加外键约束。如果没有原始 sql 或其他 gem(例如foreiner),以前没有这样的选项。
  • 但是效果(即连接两个模型)是一样的,对吧? (我对数据库知之甚少)。外键约束与带有 id 和索引的整数列有何不同?
  • 您可以使用也可以不使用add_foreign_key 方法。但是,您应该在生成迁移时使用model:referencemodel_id:integer:index 参数。没有这个,您将无法连接两个模型。

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-4.2


【解决方案1】:

外键约束有助于参考完整性(例如,您不能插入属于不存在的书籍的数据)。与应用程序级别(模型验证)完整性相反,外键还提供数据库级别的引用完整性。

Rails 团队认为这很重要,他们现在会在您使用引用生成迁移时自动创建外键。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 2020-03-07
  • 2011-08-11
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
相关资源
最近更新 更多