我在Rails上开发一个简单的用户身份验证系统。
由于这个原因,我要在我的用户模型中添加一列以获得身份验证令牌。
在线阅读资源我还应该为此身份验证令牌添加索引。有人可以向我解释添加索引的目的和理由吗?
我知道它可能与确保令牌是唯一的有关,但我不明白索引的作用或内容。以下是我的迁移代码
class AddAuthenticationTokenToUsers < ActiveRecord::Migration
def change
add_column :users, :auth_token, :string, default:""
add_index :users, :auth_token, unique: true
end
end
答案 0 :(得分:0)
您不需要身份验证令牌是唯一的(尽管如果您正确生成它们,则不太可能存在重复)。如果您确实要强制执行唯一性,则应在模型中使用validates_uniqueness_of
执行此操作。这取决于可能的竞争条件,但应该没问题。
我不会创建索引,因为这会给数据库增加不必要的开销。