在 rails 4 迁移中加入 table 评论
Join table comment in rails 4 migration
我是 rails 4 的新手,我不太确定我的 join_table。
我已经完成迁移
rails g migration CreateJoinTableQuestionSubTopic question sub_topic
然后我得到了这个文件
class CreateJoinTableQuestionSubTopic < ActiveRecord::Migration
def change
create_join_table :questions, :sub_topics do |t|
# t.index [:question_id, :sub_topic_id]
# t.index [:sub_topic_id, :question_id]
end
end
end
为什么这两个索引在评论中?我认为其中只有一个取消注释,这是正确的方法吗?
不用写吗
t.column :question_id, :integer
t.column :sub_topic_id, :integer
Or/And
t.index :question_id
t.index :sub_topic_id
我想要一个高性能的连接 table,但如果 rails 4
上有一个新的连接,我不想以旧的方式进行连接
感谢您的帮助
迁移中的 create_join_table
命令是 Rails 4 中的新命令。这:
create_join_table :questions, :sub_topics do |t|
# other commands
end
本质上是 shorthand 为此:
create_table :questions_sub_topics do |t|
t.integer :question_id, null: false
t.integer :sub_topic_id, null: false
# other commands
end
您可以在块中添加额外的列;您还可以按照迁移中的评论所建议的那样添加索引。您对索引的选择取决于您打算如何使用这些模型——Rails 不会为您选择,因为它不知道您的意图。如果您经常为给定的问题 (question.sub_topics
) 调高 sub_topics,那么您希望您的索引首先出现在 question_id 上,然后是 sub_topic_id:
create_join_table :questions, :sub_topics do |t|
t.index [:question_id, :sub_topic_id]
end
在这种情况下,您不需要仅在 :question_id 上添加索引,因为两列上的索引也用作第一列上的索引。
我是 rails 4 的新手,我不太确定我的 join_table。
我已经完成迁移
rails g migration CreateJoinTableQuestionSubTopic question sub_topic
然后我得到了这个文件
class CreateJoinTableQuestionSubTopic < ActiveRecord::Migration
def change
create_join_table :questions, :sub_topics do |t|
# t.index [:question_id, :sub_topic_id]
# t.index [:sub_topic_id, :question_id]
end
end
end
为什么这两个索引在评论中?我认为其中只有一个取消注释,这是正确的方法吗?
不用写吗
t.column :question_id, :integer
t.column :sub_topic_id, :integer
Or/And
t.index :question_id
t.index :sub_topic_id
我想要一个高性能的连接 table,但如果 rails 4
上有一个新的连接,我不想以旧的方式进行连接感谢您的帮助
迁移中的 create_join_table
命令是 Rails 4 中的新命令。这:
create_join_table :questions, :sub_topics do |t|
# other commands
end
本质上是 shorthand 为此:
create_table :questions_sub_topics do |t|
t.integer :question_id, null: false
t.integer :sub_topic_id, null: false
# other commands
end
您可以在块中添加额外的列;您还可以按照迁移中的评论所建议的那样添加索引。您对索引的选择取决于您打算如何使用这些模型——Rails 不会为您选择,因为它不知道您的意图。如果您经常为给定的问题 (question.sub_topics
) 调高 sub_topics,那么您希望您的索引首先出现在 question_id 上,然后是 sub_topic_id:
create_join_table :questions, :sub_topics do |t|
t.index [:question_id, :sub_topic_id]
end
在这种情况下,您不需要仅在 :question_id 上添加索引,因为两列上的索引也用作第一列上的索引。