2010-03-01 56 views
3

我的數據庫中的數據來自外部數據源,並且在沒有數據通過的情況下,我在這些地方保留了NULL。任何人都可以告訴我,使用NULL來表示空值是否有任何影響? 我是否應該遵循'data_not_available'等其他公約?或類似的東西?在MySQL中使用NULL

任何人都可以建議嗎?

回答

2

我一直使用NULL。我曾經看到一些論點,說NULL是一種黑客攻擊,並且不應該被用於主流應用,現在它已經失去控制,但我想不出有更好的方式來把某些東西當作「沒有價值」。

畢竟如何代表一個數字沒有價值? 0是一個值。 -1是一個值。 -9999999是一個值。

另外外鍵依賴於NULL值來表示沒有相關記錄。

+0

正好。即使我想不出比NULL更好的名字 – JPro 2010-03-01 11:39:22

1

維基百科的條目NULL in SQL實際上是非常豐富的。 NULL是可以接受的,但通常可以指示數據庫設計問題,其中數據應該位於與FK分開的表中。

+0

那麼你有什麼建議呢?例如 – JPro 2010-03-01 11:41:53

+0

,比如說有一個'Description_of_Item'的字段,並且說客戶不想填寫,因爲這種類型可以保留'NULL'嗎? – JPro 2010-03-01 11:43:16

+0

品味/表現的問題。我可能會使用NULL,而其他人則將描述放在另一個表中。 – 2010-03-01 11:50:49

1

從概念上講,NULL意味着「一個未知的缺失值」,它的處理方式與其他值有所不同。例如,要在MySQL中測試NULL,不能使用算術比較運算符,如=,<或<>。

由於您將有可能有「缺少或未知」值的列,您必須將它們設置爲接受NULL。另一方面,具有許多NULL列的表格可能表明該表格需要重構爲更小的表格,以更好地描述它們表示的實體。

請注意,通常不推薦使用像'data_not_available'這樣的約定。使用NULL 是約定,您的DBMS已經知道它。

+0

感謝您的建議 – JPro 2010-03-01 11:51:50

相關問題