我的數據庫中的數據來自外部數據源,並且在沒有數據通過的情況下,我在這些地方保留了NULL
。任何人都可以告訴我,使用NULL
來表示空值是否有任何影響? 我是否應該遵循'data_not_available'
等其他公約?或類似的東西?在MySQL中使用NULL
任何人都可以建議嗎?
我的數據庫中的數據來自外部數據源,並且在沒有數據通過的情況下,我在這些地方保留了NULL
。任何人都可以告訴我,使用NULL
來表示空值是否有任何影響? 我是否應該遵循'data_not_available'
等其他公約?或類似的東西?在MySQL中使用NULL
任何人都可以建議嗎?
我一直使用NULL。我曾經看到一些論點,說NULL是一種黑客攻擊,並且不應該被用於主流應用,現在它已經失去控制,但我想不出有更好的方式來把某些東西當作「沒有價值」。
畢竟如何代表一個數字沒有價值? 0是一個值。 -1是一個值。 -9999999是一個值。
另外外鍵依賴於NULL值來表示沒有相關記錄。
維基百科的條目NULL in SQL實際上是非常豐富的。 NULL是可以接受的,但通常可以指示數據庫設計問題,其中數據應該位於與FK分開的表中。
從概念上講,NULL意味着「一個未知的缺失值」,它的處理方式與其他值有所不同。例如,要在MySQL中測試NULL,不能使用算術比較運算符,如=,<或<>。
由於您將有可能有「缺少或未知」值的列,您必須將它們設置爲接受NULL。另一方面,具有許多NULL列的表格可能表明該表格需要重構爲更小的表格,以更好地描述它們表示的實體。
請注意,通常不推薦使用像'data_not_available'這樣的約定。使用NULL 是約定,您的DBMS已經知道它。
感謝您的建議 – JPro 2010-03-01 11:51:50
正好。即使我想不出比NULL更好的名字 – JPro 2010-03-01 11:39:22