何时在连接表上设置没有主键的表

时间:2011-01-22 21:53:23

标签: ruby-on-rails ruby-on-rails-3 activerecord primary-key

嘿我正在使用下表。我的表course_enrollments引用了user_idcourse_id。两个列组合都设置为唯一。

users
course_enrollments
courses

Rails默认设置主键。我已经阅读了一些使用这种连接表而没有任何pk的人的文章。例如通过定义:id => false

这种联接表是否合适?那些人注册或离开课程或搜索注册。谢谢你的时间!

2 个答案:

答案 0 :(得分:2)

当您想要使用:id => false时,通常会在联接表的迁移中看到has_and_belongs_to_many,因为Rails真的不喜欢在这些上找到:id主键。

来自has_and_belongs_to_many docs

  

联接表不应该有   主键或与之关联的模型   它

答案 1 :(得分:1)

  

两个列的组合都设置为唯一

因此你的桌子已经有了钥匙。除非你需要其他属性,否则没有明显需要为它制作另一个密钥。