在新的rails项目中工作几个小时后,我成功配置了has_many:thru与以下迁移的关联
class CreateEdits < ActiveRecord::Migration
def change
create_table :edits do |t|
t.references :user
t.references :post
t.string :action
t.text :summary
t.timestamps
end
end
end
现在在进一步阅读该主题后发现,显然我应该添加
add_index :edits, [:user_id, :post_id], unique: true
但是关于这个主题的rails指南没有提到索引这些列的必要性。所以我想知道我是否真的需要创建一个新的迁移来添加这样的索引。我是整个轨道和编码的新手,所以我很想知道这在生产环境中是否必不可少,因为我习惯了最佳实践。
提前致谢。
答案 0 :(得分:0)
基本上没有必要索引任何列。您的Rails应用程序本身不需要它们。但是,它们(通常)是数据库运行良好所必需的。
您通常从一开始就在Rails中执行的操作是索引所有{...} _ id列,因为这些列将用于查询关联。
最后,您必须根据应用程序查询数据的方式以及关键列来微调数据库索引。请记住,添加到许多索引会降低数据库速度。