2011-02-27 132 views
4

我有一些列可能包含數據,如果用戶想提供它。使用NULL的默認值是否好?

示例| 電子郵件 | 名字 | 姓氏 |

電子郵件 - 必需的,這樣列設置爲NOT NULL - 默認值:無

名字 - 所以不需要列設置爲NULL - 默認值:NULL

姓氏 - 所以不需要列設置爲NULL - 默認值:NULL

在phpmyadmin創建/編輯列時;它有一個選項說默認:與一個下拉菜單顯示無|如定義| NULL |當前時間戳

因爲名字|姓氏是可選的,而不是必須的,我應該選擇默認的NULL或可能沒有?

哪個最好,爲什麼要這樣?

我知道這方面已經有很多討論,但是我找不到任何回答我的問題;他們更關心的是允許NULL還是NOT NULL,我的問題是關於默認值。

回答

10

您應該將它們設置爲Default:Null,就好像用戶沒有爲該字段提供任何信息一樣,它們應該顯然爲null。

0

如果您計劃對這些NULL列進行索引,那麼在大型表(超過100萬行......)上會出現性能問題。但是,對於默認值,使用空字符串或NULL作爲字符串('null')可能會增加您在這些情況下的查詢性能。順便說一句,我沒有告訴NULL是邪惡的,但這些都是我們在電信業務中遇到的一些情況。

+0

感謝您的支持。我不會將這些列用NULL值編入索引,這樣對我來說應該不會成爲問題。謝謝phplover – PHPLOVER 2011-02-28 09:46:52