數(shù)據(jù)庫表某字段設(shè)置default為Null好,還是“”好,或者是Empty String好呢

最近開始給項(xiàng)目設(shè)計(jì)數(shù)據(jù)庫,遇到一個可能很多人都會遇到的問題,就是設(shè)定某一個字段的默認(rèn)值的時候,是設(shè)定null,“”,還是empty string呢?
首先我們從數(shù)據(jù)類型來分析這個問題:
我是phper,如果從PHP語言來看,要判斷是不是空,用empty()這個函數(shù),那么null和empty string 還有“”,結(jié)果都是一樣的,但是如果從Java,C#這些更高級點(diǎn)的語言來判斷,null 和 empty string還是有區(qū)別。null在這些高級語言里面就是什么都是空,但是empty string雖然是空,但是是字符串string類型。
然后我們從MySQL本身來看:

[plain] view plain copy

1:空值('')是不占用空間的
2: MySQL中的NULL其實(shí)是占用空間的。官方文檔說明:
“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”

所以 mysql設(shè)計(jì)表時 建議不要用default NULL
string類型的可以default ''或者emptystring
int類型的可以default 0
另外一點(diǎn),從不同的項(xiàng)目開發(fā)去分析這個問題:
以前單純做web網(wǎng)頁端,對這個默認(rèn)值設(shè)定問題選用null 還是empty string。但是后來在另外一個團(tuán)隊(duì)開發(fā)app的時候,這個null和empty string的問題就尤為突出,因?yàn)槲沂怯?a target="_blank" rel="nofollow">php做接口開發(fā),如果一旦出現(xiàn)null的數(shù)據(jù)類型,沒有處理直接返回去前端,那么無論是iOS還是Android端,如果沒有處理好這個空的判斷,要么就直接輸出null,要么程序直接報(bào)錯。所有建議設(shè)計(jì)數(shù)據(jù)庫的時候默認(rèn)值盡量少用null.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,662評論 18 399
  • 什么是數(shù)據(jù)庫? 數(shù)據(jù)庫是存儲數(shù)據(jù)的集合的單獨(dú)的應(yīng)用程序。每個數(shù)據(jù)庫具有一個或多個不同的API,用于創(chuàng)建,訪問,管理...
    chen_000閱讀 4,140評論 0 19
  • MySQL 數(shù)據(jù)庫常用命令 1、MySQL常用命令 create database name; 創(chuàng)建數(shù)據(jù)庫 use...
    55lover閱讀 5,038評論 1 57
  • 文/海芬 壟上野菊香 銀杏葉兒黃 冬寒步履歡 健身心舒暢 迎著冬日陽光 徒步鄉(xiāng)村道上 銀杏野菊金燦 陽光暖照心房
    海語天籟閱讀 491評論 1 8

友情鏈接更多精彩內(nèi)容