一个表有Nulls和两个表

时间:2013-03-04 21:54:39

标签: mysql null

假设我的情况很简单。我的网站有user表格,我需要在某处放置激活码以进行电子邮件验证。

什么是更好的选择:

    activation_code表中的
  1. user列,这意味着当电子邮件已经过验证时,我会收到NULL或无用的数据。但另一方面,我确信,每个用户只有一个代码,而且每个用户只有一个表。
  2. 代码的单独表格。没有无用的数据或NULL。但是一列的附加表(+ user_id)。
  3. 因为我尽量不使用任何NULL(因为我是这样教的,所以不确定是否正确),我更喜欢第二种选择。但我在许多网络应用程序中看到了第一种方式,所以这就是我提出这个问题的原因。

1 个答案:

答案 0 :(得分:3)

我会提倡单独的表格,因为在我看来,它会更好地模拟数据。它还允许您为同一个用户生成多个激活码 - 这可以派上用场!

另一方面,我完全不同意不使用NULL的做法。我知道有些人提倡转向清除它们的原因通常可归因于懒惰,但现实是NULL在建模数据时非常有用!它们的目的是表示缺少数据未知值,它们绝对应该用于此目的!