是否应将 1 次使用的数据(如验证码)存储在同一张表中
Posted
技术标签:
【中文标题】是否应将 1 次使用的数据(如验证码)存储在同一张表中【英文标题】:Should 1-time use data like verification code to be stored in the same table 【发布时间】:2011-06-26 22:03:46 【问题描述】:当用户注册帐户时,我会发出一个验证码,稍后用于验证该帐户。验证后,该帐户会被标记为verified=1
,并且验证码会被删除。验证码之类的数据是不是应该放在一个单独的表里?
【问题讨论】:
您为什么认为将其放在单独的表格中可能会更好? 【参考方案1】:如果您打算存储一些其他数据,例如verificationDate、ipAddress 等,您应该使用不同的表来存储验证信息。但是如果你不打算使用任何数据,而是使用“已验证”列,关于验证,同一张表中只能存储一列,
【讨论】:
存储额外的数据是常见的做法吗? 如果在一定时间后没有使用,您可能希望验证码过期,因此您可能需要存储时间戳。 @zmol:我通常使用额外的信息,这可以帮助我做出一些决定。而且,在我看来,您应该使用一些您认为可以帮助您做出决定的额外信息。【参考方案2】:将临时数据与非临时数据分开存储当然要好得多。无需将该密钥存储在帐户表中。将一些带有 FK 的 tblVerificationCodes 用于帐户表、时间戳等,并尽可能从该表中删除(或归档,如果需要)数据。这是一种很好的风格。
【讨论】:
以上是关于是否应将 1 次使用的数据(如验证码)存储在同一张表中的主要内容,如果未能解决你的问题,请参考以下文章