sql中null與空的區(qū)別 數據庫涉及到金額的字段到底要不要給默認值能不能默認null?
數據庫涉及到金額的字段到底要不要給默認值能不能默認null?這個問題不應該是技術和產品之間的競爭。相反,我認為應該從兩個方面來考慮:一是從技術的角度考慮理性,二是滿足需求。首先,無論用戶是否填寫運費字
數據庫涉及到金額的字段到底要不要給默認值能不能默認null?
這個問題不應該是技術和產品之間的競爭。相反,我認為應該從兩個方面來考慮:一是從技術的角度考慮理性,二是滿足需求。
首先,無論用戶是否填寫運費字段,在計算價格時一定要加上總價。所以從技術上講,null和0之間似乎沒有太大的區(qū)別。但是,從數據庫的角度來看,一般不建議使用null作為字段的默認值,特殊情況除外。因為使用null作為字段值可能會帶來一些問題。例如,對包含空值的列執(zhí)行計數統(tǒng)計不會得到空值。例如,在執(zhí)行否定查詢時,不能獲取空值。還有很多問題。所以當使用null作為數據庫值時,我們應該考慮它是否會影響實現。
其次,從需求的角度來看,如果需求確實需要區(qū)分用戶沒有填寫的情況和填寫為0的情況,前提是有合理的理由,比如需要避免出現問題時與用戶發(fā)生爭執(zhí)的風險,那么在這種情況下,前提應該是滿足需求。當然,滿足要求只意味著產品設計最終能夠實現,要實施的技術方案還需要技術人員考慮,因為在很多情況下,一個問題不僅僅是零或者0,還可能影響到其他地方。技術人員不得無故否定產品設計,產品人員不得過多參與技術方案。
最后,如果我想實現這個要求,我可以設置運費字段為0,但我需要添加一個標識位來判斷是否設置它。這樣,我就不需要在價格計算中處理空值,同時也可以滿足要求。如果以后需要做其他相關的統(tǒng)計,可以避免一些不必要的問題。
在數據庫中,去null值與0值的區(qū)別?
1. 空值表示值未知
2??罩挡煌诳罩祷蛄阒?。
3. 沒有兩個相等的空值。
4. 比較兩個空值或將一個空值與任何其他值進行比較將返回未知,因為每個空值都是未知的。
5. 在寫入數據時,空字符串“”也是某個值,因此即使您定義了not null,也可以寫入它