我正在创建文件托管服务,但是现在我正在创建注册的帐户电子邮件激活部分。因此,我不得不提出一个数据库结构。
现在是:
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
您只需要在需要时选择激活列。