用于向表列添加索引的目的

时间:2015-05-21 21:28:47

标签: ruby-on-rails database

我在Rails上开发一个简单的用户身份验证系统。

由于这个原因,我要在我的用户模型中添加一列以获得身份验证令牌。

在线阅读资源我还应该为此身份验证令牌添加索引。有人可以向我解释添加索引的目的和理由吗?

我知道它可能与确保令牌是唯一的有关,但我不明白索引的作用或内容。以下是我的迁移代码

class AddAuthenticationTokenToUsers < ActiveRecord::Migration
  def change
    add_column :users, :auth_token, :string, default:""
    add_index :users, :auth_token, unique: true 
  end
end

1 个答案:

答案 0 :(得分:0)

您不需要身份验证令牌是唯一的(尽管如果您正确生成它们,则不太可能存在重复)。如果您确实要强制执行唯一性,则应在模型中使用validates_uniqueness_of执行此操作。这取决于可能的竞争条件,但应该没问题。

我不会创建索引,因为这会给数据库增加不必要的开销。