【问题标题】:Should 1-time use data like verification code to be stored in the same table是否应将 1 次使用的数据(如验证码)存储在同一张表中
【发布时间】:2011-06-26 22:03:46
【问题描述】:

当用户注册帐户时,我会发出一个验证码,稍后用于验证该帐户。验证后,该帐户会被标记为verified=1,并且验证码会被删除。验证码之类的数据是不是应该放在一个单独的表里?

【问题讨论】:

  • 您为什么认为将其放在单独的表格中可能会更好?

标签: php mysql database database-design


【解决方案1】:

如果您打算存储一些其他数据,例如verificationDate、ipAddress 等,您应该使用不同的表来存储验证信息。但是如果你不打算使用任何数据,而是使用“已验证”列,关于验证,同一张表中只能存储一列,

【讨论】:

  • 存储额外的数据是常见的做法吗?
  • 如果在一定时间后没有使用,您可能希望验证码过期,因此您可能需要存储时间戳。
  • @zmol:我通常使用额外的信息,这可以帮助我做出一些决定。而且,在我看来,您应该使用一些您认为可以帮助您做出决定的额外信息。
【解决方案2】:

将临时数据与非临时数据分开存储当然要好得多。无需将该密钥存储在帐户表中。将一些带有 FK 的 tblVerificationCodes 用于帐户表、时间戳等,并尽可能从该表中删除(或归档,如果需要)数据。这是一种很好的风格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多