belongs_to 在 rails 迁移和数据库结构中创建了什么?

What is belongs_to creates in rails migrations and in the database structure?

我对 belongs_to 和 rails 中的外键感到困惑。当我们在 rails 迁移中使用 belongs_to 时,它似乎在子 table 上创建了一个外键,我们可以从父 table 访问它。但是,在 rails 文档中,有一种情况是在一列中同时使用两者。

create_table :accounts do |t|
  t.belongs_to :supplier, index: { unique: true }, foreign_key: true
  # ...
end

有人可以解释一下这种情况并解释一下 belongs_to 和 foreign_key: true 到底是什么吗?

t.belongs_to :suppliersupplier_id 添加到 accounts

index: { unique: true } 为列创建一个 database index

foreign_key: true 为列创建一个 foreign key constraint

我推荐你阅读Active Record Migrations — Ruby on Rails Guides

索引加快数据检索操作。

外键有助于维护referential integrity