相信很多人既做过数据库设计,也做过前端开发.
NUll不占索引,从而可以提高查询速度.
但我觉得Null值会给前端界面开发带来一定的困扰和数据安全隐患,在做等式不等式测试的时候会引起判断遗漏.
不知道以上的说法对不对,大家来点评一下.
另:像在数据库设计中,状态字段用0和Null或用1和Null,比用0和1,哪种更常用,更安全,更合理呢?

解决方案 »

  1.   

    我觉得好的程序要保证健壮性的话在前段都需要对null做处理的。
    0和1比较常用吧
      

  2.   

    NULL表示该值根本不存在一个极简单的例子 QQ的状态, 可以这样表示 0 -- 隐身, 1 -- 在线  NULL -- 离线一般来说, 针对NULL字段, 常常在处理上要麻烦一些, 或在前台, 或在后端处理针对这种字段, 就要避免其在Query时查询NULL值
    像上面例子, QQ中有查"离线"的吗?
      

  3.   

    呵呵,null 好像是表示"不知道"吧?索引中不包含null 值的,是可以是索引更小一些,访问该索引时效率会更高;但是另外一方面,有些场合下,也有 column is null 这样的判断,此时索引又用不上.建议:如果业务逻辑中允许有null 这种不知道的情况,而且 没有 判断是否 为空的需求 ,那么就留着null 吧,否则, 建议将null 处理成一个特殊的值.
    比如,人的身高, 可以用个 -1 来代替null, 那么 在 查询时, height=-1 即可,也可以用上 该字段上的索引.
      

  4.   

    找下yangtingkun的文章吧,讲解得很清楚