ruby-on-rails - Rails 的 ActiveRecord::Migration 的外键?

标签 ruby-on-rails postgresql foreign-keys migration

我是 Ruby on Rails 的新手(不过我对 Ruby 的了解还不错),看着迁移工具,这听起来真的很棒。数据库模式最终可以(轻松地)进入源代码控制。

现在是我的问题。当使用 Postgres 作为数据库时,它不设置外键。我希望在我的模式中使用外键的好处,例如参照完整性。那么如何在迁移中应用外键呢?

最佳答案

Rails 的哲学是完整性检查是属于模型的业务逻辑。这就是为什么您在数据库中看到的内容; whatever_id 只是一个 int 而不是可见的“真实” fk。这不是一个错误,它是设计使然,一开始有点怪异。通常,促使人们在数据库级别使用 fks 的唯一原因是当数据库被多个应用程序或其遗留系统访问时。 这里有很多讨论和一些很棒的链接:Why do Rails migrations define foreign keys in the application but not in the database?

关于ruby-on-rails - Rails 的 ActiveRecord::Migration 的外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572949/

相关文章:

MySQL 将约束表示为计算列?

jquery - Rails 3.1 和动态 jquery ui 主题切换

ruby-on-rails - 我何时/何地使用嵌套资源?

c++ - Rails WebService 和 C++ 应用程序公开

sql - postgresql:错误重复键值违反唯一约束

postgresql - 如何在 POSTGIS 中找到最近的点?

ruby-on-rails - Searchkick + Bloodhound + Typeahead 自动完成

postgresql - Springboot HikariCP

sql - 添加两个数据库之间的外键关系

java - 违反完整性约束 - 在级联上找不到父 key