ruby-on-rails - 在 Rails 应用程序中将外键添加到数据库

标签 ruby-on-rails ruby database postgresql

<分区>

使用 PostgreSQL,我知道 Rails 不在数据库中使用外键并通过 Active Record Associations 处理所有关系has_one,has_many....还有很多,我知道有像Foreigner这样的 gem 可以帮助解决这个问题,

但是向数据库表添加外键是否值得提高速度以及为什么有人会关心添加它?

最佳答案

我认为 foreign key constraints是确保数据完整性和一致性的工具。

database index用于加速查询。

它们看起来很相似,并且经常在相同的上下文中使用,但它们并不相同。


顺便说一句,没有必要使用像 Foreigner 这样的 gem。自 Rails 4.2 开箱即用以来就支持外键。看看add_foreign_key :

add_foreign_key :posts, :users

或者您可以使用 belongs_toreferences 数据类型上可用的 foreign_key:

create_table :posts do |t|
  t.references :user, foreign_key: true
  t.timestamps
end

关于ruby-on-rails - 在 Rails 应用程序中将外键添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35866862/

相关文章:

database - Titan 索引更新时间过长

ruby-on-rails - 带重音字母的正则表达式

ruby-on-rails - Controller 中的 attr_accessor 用于存储权限

ruby-on-rails - Rails Engine 是否适合管理应用程序的多个版本?

ruby-on-rails - rails + CarrierWave : NoMethodError: undefined method `image_url' for nil:NilClass

ruby - "You don' 你的 PATH 中没有 [PATH ],gem 可执行文件将不会运行。 "while using "gem install --user-install bundler"

ruby-on-rails - Ruby on Rails : Multiple Input Fields in The Same Form - Change ID/Value

ruby - Ruby 中的案例选择

python - 我如何使用 python web-scraping 从 html 代码中读取这些单元格?

Android机房一对多关系