没有默认值Vs NULL Vs 0在MySQL中作为文本和整数字段的默认值

时间:2013-03-13 16:15:18

标签: mysql sql database database-design

哪种方式适合VARCHAR / TEXT?

在Heidi SQL中我也想到了phpMyAdmin,我可以从中得到答案:

1。没有默认值

2。自定义(预定义为零,如'0')

第3。 NULL

并且还有时间戳,autoincremnet但现在这些并不重要。

那么,从这3个中可以找到适用于VARCHAR和TEXT列的MySQL的好方法吗?

哪个是INT?

这是一个截图,我的选择是:

enter image description here

1 个答案:

答案 0 :(得分:3)

我使用这个简单的经验法则:

我将NOT NULL用于表示系统中没有提供值的逻辑错误的任何字段。

如果告诉“未提供的值”和“提供的值,但为空”之间的区别,那么我使用的字段可能默认为NULL。默认为""(或整数字段为0)是不好的,因为它会阻止您进行区分。