我正在创建文件托管服务,但是现在我正在创建注册的帐户电子邮件激活部分。因此,我不得不提出一个数据库结构。

现在是:

users
  id
  first_name
  last_name
  email
  password
  since
  active
  hash_activate


但是我也可以像关系数据库一样来做:

users
  id
  first_name
  last_name
  email
  password
  since

activation
  id
  user_id
  hash
  active


最好的方法是什么?又为什么呢

最佳答案

如果每个人一次只有一个激活哈希,则可以将其与用户存储在同一表中。

但是,将其分开的一个优点是用户仅在短时间内拥有一个激活哈希,因此,为了使用户记录更小,可以将哈希存储在单独的表中。保持用户记录较小,使其性能更高。在这种情况下,您将没有active列。您只需删除不活动的哈希即可。

如果确实将激活列存储在用户表中,只需确保按名称选择列即可。例如。在大多数情况下,您需要这样做:

SELECT id, first_name, last_name, email, password
FROM users


代替:

SELECT *
FROM users


您只需要在需要时选择激活列。

10-08 08:37
查看更多