什么时候,为什么以及如何在rails中使用foreign_key? 主键和外键有什么区别? 我是铁杆的新人,所以详细的解释将不胜感激。 谢谢。
答案 0 :(得分:1)
如果无法从关联名称推断出外键名称,则在关联中使用foreign_key
。例如,如果数据库中有users
和groups
个表:
users
-id
-name
-group_id
groups
-id
-name
您可以在User
和Group
之间设置关联,而无需指定外键:
class User < ActiveRecord::Base
belongs_to :group
end
class Group < ActiveRecord::Base
has_many :users
end
但是,如果您在groupid
表中有group_id
而不是users
,则必须这样做:
class User < ActiveRecord::Base
belongs_to :group, foreign_key: :groupid
end
class Group < ActiveRecord::Base
has_many :users, foreign_key: :groupid
end
答案 1 :(得分:1)
主键和外键是数据库设计中的概念。如果你想要正确理解它们,我建议我们暂时离开Rails并查看它们,因为它们直接应用于数据库。例如,请参阅:http://en.wikipedia.org/wiki/Foreign_key