使用默认值 NULL 好吗?
Posted
技术标签:
【中文标题】使用默认值 NULL 好吗?【英文标题】:Is it good to use a default of NULL? 【发布时间】:2011-07-05 07:00:41 【问题描述】:我有一些列可能包含用户想要提供的数据。
示例 | 电子邮件 | 名字 | 姓 |
电子邮件 - 必需,因此列设置为 NOT NULL - 默认值:无
名字 - 不需要,因此列设置为 NULL - 默认值:NULL
姓氏 - 不需要,因此列设置为 NULL - 默认值:NULL
在创建/编辑列时在 phpmyadmin 中;它有一个选项说 Default: 下拉显示 None |定义 |空 |当前时间戳
因为 名字 |姓氏 是可选的,不需要我应该选择默认的 NULL 还是 NONE?
哪个最好,为什么?
我知道已经对此进行了很多讨论,但我找不到任何回答我的问题的;他们更多的是关于允许 NULL 或 NOT NULL,我的问题是关于默认值。
【问题讨论】:
【参考方案1】:如果您打算为这些 NULL 列编制索引,那么在大表(超过 100 万行...)上,您确实会遇到性能问题。但是,使用空字符串或 NULL 作为默认值的字符串 ('null') 可能会提高您在这些情况下的查询性能。顺便说一句,我并不是说 NULL 是邪恶的,但这些是我们在电信业务中遇到的一些情况。
【讨论】:
感谢您的提醒。我不会用 NULL 值索引这些列,因此希望这对我来说不是问题。谢谢phplover【参考方案2】:您应该将它们设置为 Default:Null,就好像用户没有为该字段提供任何信息一样,它们显然应该为 null。
【讨论】:
【参考方案3】:使用 NULL,None 模式是插入 'None' 或一些 '' 字符串来表示那里什么都没有......
有关为什么要使用 NULL 而非字符串的更多信息,请查看此处:mysql, better to insert NULL or empty string?
【讨论】:
以上是关于使用默认值 NULL 好吗?的主要内容,如果未能解决你的问题,请参考以下文章