我有一个看起来像这样的模型RememberToken ......
class CreateRememberTokens < ActiveRecord::Migration
def change
create_table :remember_tokens do |t|
t.references :user, index: true
t.string :token
t.timestamps
end
end
end
我已经制作了一个专门用于iOS应用程序访问的后端Rails API。
当用户注册或登录时......会向用户返回一个令牌,并将其存储在设备中(消化的令牌)。 (他们的用户可以通过iPhone,iPad等登录。该模型将跟踪多个令牌)。
但是,我想知道用户是否应该存储一对项目...... [token,user_id]对。如您所见,上面的模型在用户引用上有一个索引。如果有50,000个用户同时拥有3个令牌......那么这根本不是很多......但是我们说有数百万个条目。如果我们可以首先找到user_id,返回那些1-4 remember_token的...然后检查传入的令牌是否匹配其中任何一个,这将加快进程。
所以我的问题是......
传递[token,user_id]以查找有效令牌,而不仅仅是[令牌]会更好吗?