mn = ‘’这种查询是无效的,应该写成select*from table where column is null。换一个数据库,写法又不一样了。
所以在做数据库接口设计的时候,尽量保证字段是有值的。
我经常看到这样的设计,字段A,传值1表示***,传值2表示xxx,若传空值,表示$$$。这是糟糕的设计。
即使SQL和关系型数据库对空值做了统一规范,也不应该在中间表字段中定义空值,这样相当于把一个空值赋予业务含义。并且,可以有空值的字段,不能配置数据库非空约束。还可能由于发送方程序bug而导致没有给字段写值却成了合法的输入。
6、 ABCD还是1234
定义什么样的状态值往往困扰我们。我们已经受够了太多的状态字段和状态值。有的状态字段值分别是ABCD…有的值分别是1234…时间长了,我们已经无法清楚的记住哪个字段是哪个含义,哪个值是哪个含义
真的有必要那么多的状态吗?仔细想想应该没有,除了常见的“初始init”“成功success”“失败fail”“异常error”,我想不出哪个状态是没有办法用英文单词来明确区分的。所以为什么不查查字典,用简单明了的英文单词来描述状态值呢,这样一看就懂了。
7、 唯恐天下不乱的不是记者而是智者
不出问题永远不知道错在哪,如果你懂了,不要说出去,等出了问题,再说出来