出于标准化原因,我会将它们放在单独的表中。
table user
-------------
id integer primary key auto_increment
username varchar
salt_passhash varchar
......
table tokenreset
---------------
id integer primary key auto_increment
user_id integer
when_requested timestamp
all_done boolean default false
Run Code Online (Sandbox Code Playgroud)
如果您想知道需要重置密码的用户,请执行以下操作:
SELECT u.id, u.username, u.email FROM user u
INNER JOIN tokenreset tr ON (u.id = tk.user_id)
WHERE NOT(tr.alldone)
Run Code Online (Sandbox Code Playgroud)
或者那种性质的代码。
这样你就不会有一个user95% 的时间都没有被使用的字段。