新手问题 Rails 4.2 中添加了 foreign_key,作用是什么呢?

QueXuQ · 2015年02月11日 · 最后由 QueXuQ 回复于 2015年02月11日 · 3769 次阅读

现在创建 model 的过程中,如果添加关联的时候,migration 会出现一个:

add_foreign_key "products", "users"

类似这样的东西,翻看了一下,没搞懂add_foreign_keyforeign_key的作用是什么呢?

http://stackoverflow.com/questions/27201054/rails-4-2-foreign-key

http://robots.thoughtbot.com/referential-integrity-with-foreign-keys

大概是说用 foreign key 能保证两个表的数据同步,不会有坏链接之类的意思吧?我对数据库也不算熟

数据库层面的约束吧

#1 楼 @blacktulip #2 楼 @yukihiro_matz #3 楼 @leomayleomay 其实 thoughtbot 的文章也看过,毕竟数据库的东西还是不熟,感觉就是在没有 foreign_key 的时候,建立两个表的联系只是 rails 层的模拟,如果把 foreign_key 加上了,就在数据库层也建立了联系,貌似这样是比较好的事情。 可是根据搜索,或创建层面来说,会产生什么影响呢?就像加了索引,搜索快了,插入和删除慢了,之类的影响有没呢?为什么 rails 到 4.2 版本才把这个事情加进来呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号