我们有一个用户表来记录我们网站上注册的所有用户, 但有些人可能不会激活它
我们现在的做法是一旦用户注册,一条记录将存储在我们的表中,一旦用户点击激活链接,激活码将变为''(空)
如果记录未激活,则电子邮件无法使用,并且始终在我们的表格中
user
id | email | activation code
1 | abc@abc.com |asdasdasdadadsasda
2 | cde@abc.com |
最佳做法或解决方案是什么?
创建一个新表来存储所有激活码,只有在激活后才会插入到用户表中?
或者只是这样离开?但存储它是浪费
或者更好的解决办法吗?
答案 0 :(得分:1)
我曾经这样做过:
由于这个原因,您可以在主帐户表中节省一些空间,还可以添加一个将删除旧临时帐户的任务(例如,每周)。
当用户激活其帐户时,您将其数据从临时表移动到主表。
答案 1 :(得分:0)
简而言之:
在User
表格中添加一列:is_activated TINYINT(1)
DEFAULT 0
为激活码创建一个表格:
user_id, activation_code, created_at, valid_to
当用户注册时,将激活码插入新表,然后将用户插入到is_activated = 0
的用户表中。
当用户激活其帐户时,请删除激活码并为用户更新is_activated
至1
。
创建一个cronjob,它会定期运行并检查无效(已过期)的激活码(valid_to < NOW()
)。
答案 2 :(得分:0)
保持标志代表真或假,而不是存储链接。如果帐户被激活,请将其设为真。