NULL或空字符串--在表示表列中没有数据时,哪一种更好?(我专门使用MySQL,但我认为这是独立于系统的.)与使用另一种相比,使用其中一种有什么主要的优点/缺点,或者仅仅是程序员的偏好?
NULL或空字符串--在表示表列中没有数据时,哪一种更好?(我专门使用MySQL,但我认为这是独立于系统的.)与使用另一种相比,使用其中一种有什么主要的优点/缺点,或者仅仅是程序员的偏好?
我强烈反对任何人说无条件使用NULL.允许列为NULL会引入一种额外的状态,如果将列设置为NOT NULL,则不会出现这种状态.如果不需要附加状态,请不要这样做.也就是说,如果你不能找出空字符串和null的含义之间的区别,那么就将列设置为NOT null,并使用空字符串来表示空.用两种不同的方式表达同一件事是个坏主意.
大多数告诉您使用NULL的人还给出了一个示例,其中NULL的含义与空字符串不同.在这些例子中,他们是正确的.
然而,在大多数情况下,NULL是一种不必要的额外状态,只会迫使程序员不得不处理更多情况.正如其他人所提到的,Oracle不允许存在这种额外的状态,因为它将NULL和空字符串视为同一事物(在Oracle中不允许NULL的列中不可能存储空字符串).