对于数据库存储,空白是否优先为null

时间:2013-06-16 14:50:41

标签: database

我正在使用rails 3和Mysql或SQlite3作为我的后端数据库。我从第三方导入了很多逗号分隔值。当某个特定属性为null时,第三方使用“”(该值为1个空格或空格)。

我的问题是从数据库效率的角度来看,我应该简单地坚持使用空格的第三方约定,还是我会更好地将空格转换为空字符。

3 个答案:

答案 0 :(得分:2)

您应该使用NULL,因为这意味着该字段没有值。但是一个空的空间实际上是一个值(这是一个空格),所以你最好将它们转换为NULL

答案 1 :(得分:1)

您应该将它们转换为NULL。如果数据为NULL,那么当它应该为NULL而不是一些随机空格时,它会使你的furute更容易工作。 事实是,您可以将其转换为任何内容,但如果您想要一个无bug系统,那么保持数据尽可能一致是最重要的事情之一。

答案 2 :(得分:1)

虽然NULL优于空白,但多个NULL数据表示数据库设计气味。

我建议你:

  1. 按原样导入数据库,即空格
  2. 使用原始SQL命令将空格转换为NULL。
  3. 如果有很多NULL,请重新设计模型并进行迁移。