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