【发布时间】:2013-11-16 02:36:31
【问题描述】:
我用这个命令:
rails g migration CreateJoinTableUserPloy user ploy
我检查了迁移文件:
create_join_table :Users, :Posts do |t|
#t.index [:user_id, :ploy_id]
#t.index [:ploy_id, :user_id]
end
有 2 个索引被默认注释。
然后我运行这个命令:
rake db:migrate
然后我检查我的数据库结构
而且我没有看到主键,是不是说join table不需要在数据库结构中添加索引和主键?
【问题讨论】:
-
他们不需要 ID(或 ID 上的索引),因为您永远不会按 ID 搜索该表,您将始终搜索 user_id 和 post_id。
-
我认为索引会影响数据库的性能,但是为什么rails不需要索引呢?
-
哦,你的意思是迁移带有注释的那些索引?我想这些是帮助您创建迁移的提示,只需取消注释并将“ploy”替换为“post”即可。
-
我认为您只需要注释掉的行之一,因此您必须通过取消注释来决定保留哪一行。
标签: ruby-on-rails rails-migrations